Skip to main content
 首页 » 编程设计

c#之如何防止正则表达式在第一场比赛中停止

2024年02月24日31mq0036

如果我有字符串 hello world ,我如何修改正则表达式 world|wo|w 以便它匹配所有的“world”、“wo”和“w”,而不仅仅是它所涉及的“world”的第一场比赛?

如果这不能直接实现,是否有好的解决方法?如果它有所作为,我正在使用 C#:

Regex testRegex = new Regex("world|wo|w"); 
MatchCollection theMatches = testRegex.Matches("hello world"); 
foreach (Match thisMatch in theMatches) 
{ 
   ... 
} 

请您参考如下方法:

我认为您将需要使用三个单独的正则表达式并匹配它们中的每一个。当您指定备选方案时,它认为每一个都是成功的匹配项,并在匹配其中一个后停止查找。我能看到的唯一方法是在单独的正则表达式中使用每个备选方案重复搜索。您可以创建匹配项的数组或列表,如果您希望以后能够循环访问它们,则可以将每个搜索添加到列表中。