2017-10-15 42 views
0

我想匹配任何包含單詞「name」和「Richard」(按此順序)前面沒有單詞「hello」的字符串。正則表達式:如何排除前綴字符串?

正則表達式應該匹配
我的名字叫理查德
名理查德


但它不應該匹配
你好,我的名字是理查德
#hello,我的名字叫理查德
理查德名字


我試過以下的正則表達式,但它們不能正常工作
(^你好)名*理查德
(。。? <!你好)。*名稱*理查德
(?< = ^你好)。*名稱*理查德


感謝您的幫助

回答

2

使用單一的正則表達式:

^((?<!hello).)*name.*Richard 

發揮它在regex101

應對@Mateus評論:是的,這正則表達式匹配name hello my name is Richard。您可以防止匹配:

^((?<!hello).)*name((?!name).)+Richard 

檢查這一項上regex101爲好。

+0

你的正則表達式匹配「姓名你好,我的名字是理查德」,是否應該匹配? – Mateus

+0

您應該將此問題提交給OP。我正在根據他的例子回答這個問題。它至少不符合「我的名字叫理查德」這個名字。 –

+0

這就是我需要的,非常感謝Marc! :-) – fandetv

相關問題