我有一个示例字符串:
Ole Abraham of XYZ becomes Chief Digital Officer and EVP, Business Development of Warner Music Group.
我想要最后一次出现of
到.
的所有单词。
需要的结果:of Warner Music Group.
我使用了RegEx:(\bof\b).+\.\s?
这是从of
的第一次出现返回子字符串:
of XYZ becomes Chief Digital Officer and EVP, Business Development of Warner Music Group.
答案 0 :(得分:1)
正则表达式引擎从左到右处理字符串,因此,您的模式匹配的of
是左起第一个。然后,.+
将整行与其末尾匹配,并且仅回溯以查找.
(\s?
并不重要,因为它可以匹配空字符串,但如果找到则会匹配在.
之后,因为?
是一个贪婪的量词。)
您可以使用
.*\bof\s+([^.]+)
请参阅regex demo。结果将在第1组中。请注意,如果您必须在字符串中测试.
存在,请将\.
附加到模式的末尾。
<强>详情
.*
- 将尽可能多地匹配换行符以外的任何0 +字符,直到后续子模式的最后一次出现\bof
- 整个字of
\s+
- 一个或多个空格([^.]+)
- .
以外的一个或多个字符。