RegExp1(?=RegExp2) 匹配后面是RegExp2 的 RegExp1
RegExp1(?!RegExp2) 匹配后面不是RegExp2 的 RegExp1
(?<=RegExp2)RegExp1 匹配前面是RegExp2 的 RegExp1
(?<!RegExp2)RegExp1 匹配前面不是RegExp2 的 RegExp1
# 场景1: 区别“怎么处理”和“怎么还没处理”,在“怎么”和“处理”之间,可以有其他的字,但不能出现"没",使用(?!.{0,3}(没))组合
p = '怎么(?!.{0,3}(没)).{0,3}处理'
text = '怎么还v没处理'
text1 = '怎么,d处理'
print(re.search(p, text))
print(re.search(p, text1))
# 场景2: 在“为什么 ” 跟 “处理” 之间 8个字里面,必须有"没"
p2 = '(为|怎么|咋).{0,4}没.{0,5}(还|处理|解决)'
text = '为什么还没处理'
text1 = '为什么处理不了'
print(re.search(p2, text))
print(re.search(p2, text1))
# 场景3:前面几个字之中不能出现先“我”
p5 = '(?<!.{0,10}我.{0,10})(老婆|父母).{0,3}帮助'
text = 'fdshfd我们会问一下你老婆帮助不帮助你还'
text1 = 'sdfjddf问你老婆帮助一下你'
print(re.search(p5, text))
print(re.search(p5, text1))