我的正则表达式看起来像正则表达式停在第一场比赛
<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