Skip to main content
 首页 » 编程设计

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

2024年08月06日47duanxz

我试图在 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

第三行匹配到第二组括号,而不是停在第一组。我怎样才能让它变得懒惰,或者只是在第一组括号中停止匹配?

请您参考如下方法:

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

在这里。查看演示。

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