【发布时间】:2020-05-16 03:46:51
【问题描述】:
我正在尝试根据字符串中是否存在 KeyWord2 在 .NET 正则表达式引擎 中捕获 KEYWORD1。到目前为止,我正在使用的积极的环顾解决方案:
(?=.*KeyWord2)**KEYWORD1** (\m\i)
仅当 KeyWord2 位于字符串中 KEYWORD1 后面的任何位置时才捕获 KEYWORD1。如何在正则表达式中优化它,以便它捕获字符串中 KEYWORD1 的所有实例,尽管 KeyWord2 的位置在前面、后面或两者兼而有之?
我真的很感激一些见解。
谢谢
【问题讨论】:
-
亲爱的 Mandy8055 感谢您的关注。如果您单击通过 rubular.com 提供的 RegEx 测试链接,您会注意到失败的案例。谢谢
-
亲爱的 Mandy8055 非常感谢您的贡献。您的解决方案解决了这个难题,它在 .NET 正则表达式引擎中完美运行。
-
你可以使用:(?=.*KeyWord2).*(KEYWORD1) 那么'KEYWORD1'将永远在group1中。
-
@Mandy8055,是的,你是对的,我的答案被错误地发布在错误的问题上。我删了它。我很惊讶有人投了反对票(更新:2 票反对),而它显然不是针对这个问题的。
-
@CarySwoveland 我很难过为什么人们这么早就因为任何错误而投反对票。应该以某种方式避免这种情况