我的要求是简单明了的英语
如果字符串中的关键字以非字母数字开头/结尾或两者都以非字母数字开头/结尾,则匹配,或者完全匹配
关键词:中国
'CHINA', #match
'CHINA ROM' #match
'CHINA WAREHOUSE', #match
'CHINA-WAREHOUSE', #match
'CHINA-ROM', #match
'dsa china', #match
'CHINALOCAL', #No
'CHINAOO' #No
根据我目前对正则表达式的了解,我可以做
keyword = keyword.lower()
if keyword == '' string \
or re.match(r"china[^a-zA-Z0-9]", keyword, flags=re.IGNORECASE) \
or re.match(r"[^a-zA-Z0-9]china", keyword, flags=re.IGNORECASE) \
or re.match(r"[^a-zA-Z0-9]china[^a-zA-Z0-9]", keyword, flags=re.IGNORECASE):
print("matched")
有没有一个正则表达式可以执行我想要的所有检查
对于示例数据,可以使用
^
字符串开头(?:[A-Za-z]+ )*
重复0+次匹配1+次A-Za-z,后跟空格china
逐字匹配?:[ -][A-Za-z]+)*
重复0+次匹配空格或-
,然后重复1+次a-Za-z$
字符串结尾Regex demo
印刷品:
编辑:正如Wiktor在评论中所说的
re.findall(r'\bchina\b', d, flags=re.I)
可能就是你想要的相关问题 更多 >
编程相关推荐