我完全迷失了这个正则表达式如何匹配python中的这个字符串.有人能理解它吗?
import re
regex = "^PHP/5.\\{3|2\\}.\\{1|2|3|4|5|6|7|8|9|0\\}\\{1|2|3|4|5|6|7|8|9|0\\}$"
ua = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)'
re.compile(regex).search(ua)
Run Code Online (Sandbox Code Playgroud)
正则表达式以PHP字符串开头,而字符串则没有.难道不应该仅仅取消比赛的资格吗?
您需要为交替进行分组(最好是非捕获):
PHP/5.\\{(?:3|2)\\}.\\{(?:1|2|3|4|5|6|7|8|9|0)\\}\\{(?:1|2|3|4|5|6|7|8|9|0)\\}$
^^ ^ ^^ ^ ^^ ^
Run Code Online (Sandbox Code Playgroud)
另外,你将交替整个表达式:
PHP/5.\\{3 要么2 要么\\}.\\{1 要么2 要么3 要么4 要么5 匹配发现!想想PEMDAS和嵌套条件(if(a && (b || c)) { }).