Regex匹配单词的首次出现

本文关键字:单词 Regex | 更新日期: 2023-09-27 18:06:20

对不起。我把这个例子改写如下,在下面的段落中,在mary第一次出现之后,我如何匹配数字(1((在我的情况下,所有三组都是强制性的(:

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

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

Regex匹配单词的首次出现

使用.*?而不是.*:

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

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