2013-08-03 102 views
0

我有SLRE庫中的問題,我無法弄清楚如何阻止我的比賽後抓住一切。比方說,我有緩衝中間的HTML輸出和某處有行我想分析SLRE正則表達式不能正常工作

name="id" value="1a2b3c4d5e6f" /> 

這裏是我的正則表達式

slre_compile(&test, "name=\"id\" value=\"(.*?)\" />") 

我讀過關於貪婪和非貪婪的標誌在其他線程中,人們曾經和我有類似的問題,但在我的情況下,加入以表達不會改變任何東西。 SLRE返回我從1a2b3c4d5e6f" />開始的匹配,並顯示其餘的HTML頁面以</html>結尾,只是我不知道爲什麼。它正在削減html源代碼的開頭,但在我的表達之後將所有內容都保留下來。我也曾嘗試以下的正則表達式

slre_compile(&test, "^.*?name=\"id\" value=\"(.*?)\" />.*?$") 

和其他一些人,貪婪和非蘆葦標誌修改,這給了我同樣的結果。有誰知道爲什麼SLRE不能停在" />並繼續捕捉字符,直到源字符串結束?

+0

如何'值= \ 「[^ \」] * \「'工作? –

+0

@ m.buettner它沒有匹配,0字節 我應該改變正則表達式庫 – user2648790

+0

我不知道SLRE,所以我不知道是不是這個問題,試着用'\「\\ s * />'替換'\//''也許有一個不匹配的問題用你的空格 –

回答

0

似乎SLRE不理解非貪婪限定詞並且解析.*?而不是像它是(?:.*)?。然而,在這種情況下\"[^\"]*\"應該工作...

+0

不幸的是,它也匹配想要的值和頁面的其餘部分。太糟糕了,雖然SLRE會是一個完美的本地跨平臺庫但它似乎缺乏一些標準功能,或者我對此太愚蠢了,而我正在做一些完全錯誤的事情。 – user2648790