Regex 正则表达式在字符串中查找匹配项

Regex 正则表达式在字符串中查找匹配项,regex,Regex,我有一个字符串示例: Ole Abraham of XYZ becomes Chief Digital Officer and EVP, Business Development of Warner Music Group. 我要从上次出现的到的所有单词。 所需结果:华纳音乐集团。 我使用了正则表达式:(\bof\b)。+.\s? 这是从第一次出现的返回子字符串: of XYZ becomes Chief Digital Officer and EVP, Business Developme

我有一个字符串示例:

Ole Abraham  of XYZ becomes Chief Digital Officer and EVP, Business Development of Warner Music Group.
我要从上次出现的到的所有单词。 所需结果:
华纳音乐集团。

我使用了正则表达式:
(\bof\b)。+.\s?
这是从第一次出现的返回子字符串:

of XYZ becomes Chief Digital Officer and EVP, Business Development of Warner Music Group. 

正则表达式引擎从左到右处理字符串,因此,模式匹配的
是从左到右的第一个。然后,
+
将整行匹配到它的末尾,并且只回溯到查找
\s?
不重要,因为它可以匹配空字符串,但是如果在
之后找到,就会匹配,因为
是一个贪婪的量词)

你可以用

.*\bof\s+([^.]+)
看。结果将在第1组。请注意,如果必须测试字符串中是否存在
,请将
\.
附加到模式的末尾

详细信息

  • *
    -将尽可能多地匹配除换行字符以外的任何0+字符,直到最后一次出现后续子模式
  • \bof
    -一个完整的
  • \s+
    -1个或多个空格
  • ([^.]+)
    -一个或多个字符,而不是

我是Regex的新手,但演示非常有用。你能建议我如何只捕获团体比赛而不捕获完整比赛。@SonuKumar:正则表达式的味道是什么?你在用什么计算机语言?在几乎所有情况下,您都不需要获得完全匹配,您可以使用适当的语言手段访问捕获。am使用VB脚本,然后使用
match.Submatches(0)
访问该值。有关代码片段,请参见。