我想判断一下特定的词是否出现在另一个词之前?如果它看起来一定不匹配,如果它看起来不匹配,那么它们之间可以有其他词
以下是示例字符串:My name is Jack Brown
我想判断一下Jack
之前是否出现了name
个单词,以下是我的正则表达式:
正则表达式:(?<!name)\b(Jack)\b
但不幸的是,只有在他们之间没有任何语言的情况下,它才能起作用,有人能帮忙吗?
我想判断一下特定的词是否出现在另一个词之前?如果它看起来一定不匹配,如果它看起来不匹配,那么它们之间可以有其他词
以下是示例字符串:My name is Jack Brown
我想判断一下Jack
之前是否出现了name
个单词,以下是我的正则表达式:
正则表达式:(?<!name)\b(Jack)\b
但不幸的是,只有在他们之间没有任何语言的情况下,它才能起作用,有人能帮忙吗?
你需要否定Jack
之前的name
.
(?=^(?:(?!name).)*Jack.*$).*
name
这个词,什么都行Jack.*
个精确的单词Jack
和其他可选字符.*
匹配整个字符串import re
s1 = "My name is Jack Brown"
s2 = "I am Jack Brown"
def doesMatch(string):
return bool(re.search(r"(?=^(?:(?!name).)*Jack.*$).*", string))
print(doesMatch(s1)) # False
print(doesMatch(s2)) # True
此外,请参阅regex demo