liveonsky
作者liveonsky·2023-01-29 15:01
数据库开发工程师·sr

python 正则表达式 and or 包含且不包含的写法

字数 1313阅读 1445评论 0赞 1

python正则表达式中 and or 的写法
python正则表达式中 包含 且 不包含的写法

查找 : ( like (str1, str2 ) and not like (str3 ,str4) ) or like (str11,str22)
说明 : ((包含str1或str2) 且不包含(str3或str4)) 或者 ( 只要包含 str11 or str12)
正则写法:

(^(?!. * ( str3 | str4 ))(?=.*( str1 | str2 )))    |   ( str11 | str22 )

举例如:(包含nice或how但同时不包含old|too的字符串), 或者 (包含hello|nihao的字符串)
正则写法:

(^(?!.*(old|too))(?=.*(nice|how)))|(hello|nihao)

执行:python3

import re
strPattern = "^((?!old|too).)*$"
strPattern = "^(?!.*(old|too))"
strPattern = "(?=.*(nice|how))"
strPattern = "(hello|nihao)"
strPattern = "(^(?!.*(old|too))(?=.*(nice|how)))|(hello|nihao)"
pattern = re.compile(strPattern)
str2="hello,how old are you"
m = pattern.search("_"+str2+"_")
print(m)
str2="hello,how are you"
m = pattern.search("_"+str2+"_")
print(m)
str2="how old are you"
m = pattern.search("_"+str2+"_")
print(m)
str2="how are you"
m = pattern.search("_"+str2+"_")
print(m)
str2="nice,hello"
m = pattern.search("_"+str2+"_")
print(m)

执行结果:
<_sre.SRE_Match object; span=(1, 6), match='hello'>
<_sre.SRE_Match object; span=(0, 0), match=''>
None
<_sre.SRE_Match object; span=(0, 0), match=''>
<_sre.SRE_Match object; span=(0, 0), match=''>

参考明细:
https://www.jianshu.com/p/76dec33163a9
https://www.jb51.cc/regex/358880.html
https://blog.csdn.net/spw55381155/article/details/122426546

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广