我有一个模式需要找到string1 的最后一次出现,除非在主题的任何地方找到string2,然后它需要第一次出现string1.为了解决这个问题,我写了这个效率低下的负面预测.
/(.(?!.*?string2))*string1/
Run Code Online (Sandbox Code Playgroud)
运行需要几秒钟(对于没有出现任何一个字符串的主题,过长时间过长).有没有更有效的方法来实现这一目标?
您应该能够使用以下内容:
/string1(?!.*?string2)/
Run Code Online (Sandbox Code Playgroud)
string1只要string2在字符串后面找不到,就会匹配,我认为这满足您的要求。
编辑:看到您的更新后,请尝试以下操作:
/.*?string1(?=.*?string2)|.*string1/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |