我正在尝试草拟一个与字符串中第一个:
之前的所有内容匹配的正则表达式,并在:
之前的文本中排除特定术语(如果找到)。请致电Grumble
。
我希望匹配字符串Foo
中的Foo: Bars
。
我想在Foo fuzz
中匹配Foo fuzz Grumble: Bars and moar bars
。
我尝试了模式^.*(?=(Grumble)?:)
,但在上面第二个示例的匹配项中包含了Grumble
。
答案 0 :(得分:2)
你需要一个温和的[^:]
:
^([^:](?!Grumble))*
说明:
^
断言输入字符串的开头(
打开分组
[^:]
除:
(?!Grumble)
后面没有单词Grumble
)*
尽可能答案 1 :(得分:1)
怎么样:
^.*?(?=Grumble|:)
.*?
任何角色的非贪婪匹配(?=Grumble|:)
表示具有两个条件的正向前瞻
Grumble
,则只会捕获到Grumble
:
,则仅在:
编辑:错误解释OP的问题。感谢@revo澄清