正则表达式取反时,‘|’代表“并”的意思吗?
本帖最后由 Nmbh 于 2020-6-26 10:33 编辑已知正则表达式中[^pattern]和(?!pattern)有类似的效果,即不匹配特定位置有‘pattern’的文本。
在“Python3 如何优雅地使用正则表达式(详解五)”中提供了相关例子,但与我的理解有点不同。
例如‘.*[.](?!bat$|exe$).*$’按照我的理解是‘不匹配后缀名为bat的文件’或‘不匹配后缀名为exe的文件’,但这样不就变成匹配全集了吗?
因为‘exe文件’符合‘不匹配后缀名为bat的文件’这一规则,而‘bat文件’符合‘不匹配后缀名为exe的文件’。求大神解答{:10_262:}
.*[.]([^b]..|.[^a].|..[^t])$#排除后缀名为bat的文件
.*[.](?!bat$|exe$).*$#排除后缀名为bat和后缀名为exe的文件 A | B 不是匹配 A 或 B 吗 哦我知道了
在匹配的时候 ,表达式是^(A|B)的话,如果 A|B 的结果是 A,就会取反,选择除 A 之外的字符
反之亦然
页:
[1]