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