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 条评论