繁体   English   中英

正则表达式匹配单词的第一个外观

[英]Regex match the first appearance of a word

抱歉。 我重新讨论了如下例子,如何在下一段中第一次出现玛丽之后匹配数字( 1 )(在我的情况下,所有三组都是强制性的):

Regex.Match("Do you know 3453 **Mary** has a little lamb 1 and Mary likes dancing 2."
, @"(Do).*(Mary).*(\d)");

目前它匹配第二个玛丽 ,因此,第三组捕获2而不是1

使用.*? 而不是.*

Regex.Match("Do you know **Mary** has a little lamb 1 and Mary likes dancing 2.",
  @"(Do).*?(Mary).*?(\d)");

.*匹配最长的子串(贪婪),而.*? 匹配最短(懒惰)。 在您的示例中,第一个.*包含第一个Mary因为它匹配尽可能多的字符。

暂无
暂无

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

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