我的正則表達式看起來像正則表達式停在第一場比賽
<xxxx location="file path/level1/level2" xxxx some="xxx">
我只在部分分配給位置的報價感興趣。沒有貪婪的開關,它不應該像以下那樣容易嗎?
/.*location="(.*)".*/
似乎沒有工作。
我的正則表達式看起來像正則表達式停在第一場比賽
<xxxx location="file path/level1/level2" xxxx some="xxx">
我只在部分分配給位置的報價感興趣。沒有貪婪的開關,它不應該像以下那樣容易嗎?
/.*location="(.*)".*/
似乎沒有工作。
您需要使您的正則表達式不貪婪,因爲默認情況下,"(.*)"
將匹配所有"file path/level1/level2" xxx some="xxx"
。
相反,你可以讓你的點星非貪婪,這將使其儘可能少的字符可能匹配:一個量詞(?
,*
或+
)
/location="(.*?)"/
添加?
使得非-貪婪。
如果您的引擎支持它,請使用非貪婪匹配。添加?捕獲內部。
/location="(.*?)"/
如何
.*location="([^"]*)".*
這就避免了無限的搜索。*和準確地將匹配第一個報價。
你的來源是什麼,它是HTML或XML或什麼的? – 2010-03-23 20:39:34
爲什麼這是一個社區wiki?這是一個真正的問題。現在太晚了。 – 2010-03-23 20:41:08
@Kurresmack它是XML。 – publicRavi 2010-03-23 20:41:15