正则表达式在第一场比赛中停止
我的正则表达式模式看起来像
<xxxx location="file path/level1/level2" xxxx some="xxx">
我只对分配给位置的引号部分感兴趣。 没有贪婪的开关,它不应该像以下那样容易吗?
/.*location="(.*)".*/
似乎没有工作。
你需要让你的正则表达式非贪婪,因为默认情况下, "(.*)"
将匹配所有"file path/level1/level2" xxx some="xxx"
。
相反,你可以让你的星星不贪心,这将使它匹配尽可能少的字符:
/location="(.*?)"/
添加一个?
在量词( ?
, *
或+
)上使其非贪婪。
location="(.*)"
将从“after location=
”之后匹配到“after some="xxx
除非让它变得非贪婪,所以你需要.*?
(即使它不贪婪)或者更好地替换.*
与[^"]*
。
怎么样
.*location="([^"]*)".*
这避免了使用。*的无限搜索,并且将与第一个报价完全匹配。
链接地址: http://www.djcxy.com/p/13443.html