我的目标是匹配以__开始和__结束的每个组。
例如,在此文本中:
__1__
__2____3__
__4_4__
我们可以找到4个群组。
有了这个正则表达式
__.[^__]*__
最后一组不匹配。
有了这个
__(?!(^_)$).*__
第二和第三组合而为一。
请问如何解决?
您可以使用
__.+?__
您可能会感到惊讶,因为我在任何尝试中都尝试过类似这样的事情,因此我没有对“在此过程中没有任何下划线”进行任何说明。
诀窍是使用+?
,一个懒惰的量词。我允许正则表达式匹配任何字符(.
),但要匹配的次数越少越好,因此其后会有两个下划线。好像匹配每个字符后,正则表达式引擎总是询问“前面是否有两个下划线?”。如果有的话,那就是量词停止匹配的地方。
请参阅此以获取有关懒惰量词与贪婪量词的更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句