我的正则表达式模式看起来像
<;xxxx location=“文件路径/level1/level2”xxxx some=“xxx”>;
我只对分配到位置的引用部分感兴趣。如果没有贪婪的开关,它不应该像下面那样简单吗
/.*location=“(.*)”*/
似乎不起作用
您需要将正则表达式设置为惰性/非贪婪,因为默认情况下,”;(.*)”将与所有的”匹配;文件路径/level1/level2“;xxx some=";xxx“
相反,您可以使您的点星不贪婪,这将使其匹配尽可能少的字符:
/location=";(.*?”/
在量词(?、*或+)上添加一个?)使其不贪婪
注意:这仅在实现Perl5扩展(Java、Ruby、Python等)的正则表达式引擎中可用,而在;传统的;正则表达式引擎(包括JavaScript、Awk、sed、不带-P的grep等)