我希望有人能帮我这个忙。
我有以下案文:
XX Oferta de empleo como Gestorómico teste y financiero en Importante empresa,Jerez de la Frontera XX
我只想和Importante empresa匹配。
以下正则表达式将运行良好:
XX.* en ([^,]+), .*XX但是,如果文本有两次en,例如:
XX Oferta de empleo como laómico en teste y financiero en Importante empresa
它将与以下内容相匹配:
teste y financiero en Importante empresa你们中有谁知道如何使我的正则表达式在匹配时只使用与逗号最近的en,所以不管前面有多少en,我只匹配Importante empresa?
谢谢。
发布于 2012-12-27 17:51:45
对于您的示例,它应该是有效的,因为在正则表达式开始时贪婪的.*将匹配所有ens,然后只回溯到字符串中的最后一个en,以允许正则表达式的其余部分匹配。我只能想到一种情况,即在PHP中使用/U修饰符使贪婪的量词变懒,反之亦然。
但是,您可以以任何方式明确您的需求:
XX.* en ((?:(?!\ben\b)[^,])+), .*XX现在,负展望(?!\ben\b)断言,在en和,之间不可能有进一步的en (使用\b单词边界来避免错误的阳性匹配,比如在encuentro或dicen中)。
https://stackoverflow.com/questions/14058614
复制相似问题