繁体   English   中英

如何使正则表达式模式变得懒惰,或者如何在第一次出现时停止匹配?

[英]How to make regex pattern lazy, or how to stop matching on first occurrence?

我想在C#中使我的整个正则表达式模式变得懒惰,而不是贪婪。 在PHP中,有U选项使匹配延迟。 我没有看到C#中的等效设置。

我正在使用的模式是^(.+)\\(?([^)]+)\\)(.*)$ ,带有以下示例数据...

 BILYARD    (2): Reviewed data.
BHAT-A (1): Reviewed data.
BEEL/RUBIN (1): Emails with engagement (haha)team and OGC.  Reviewed data.          
 BILLY BOB (1hr) Mwahaha

如果我们看一下regex101.com的工作方式,我们可以看到匹配项: https ://regex101.com/r/pT4tM5/3

第三行匹配第二组括号,而不是在第一组停止。 我怎么能让这个懒惰,或者只是停止匹配第一组parens?

^(.+?)\(([^)]+)\)(.*)$

   ^^

在这里看看演示。

https://regex101.com/r/pT4tM5/4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM