[英]python fnmatch.fnmatch("[seq]") escape not working
根据https://bugs.python.org/issue13929 ,“[seq]”应该用反斜杠转义。 但是,当我运行相同的代码时,我会得到不同的结果,如下所示
我需要检测包含“[”和“]”的字符串。 因此,我的解决方案是将字符串和模式上的“[seq]”更改为“{seq}”,如下所示。
string = string.replace("[", "{").replace("]", "}")
pattern = pattern.replace("[", "{").replace("]", "}")
fnmatch.fnmatch(string, pattern)
有没有更好的解决方案?
fnmatch
不支持带反斜杠的 escaping。 相反,您应该将特殊字符括在方括号中。 从文档:
对于文字匹配,将元字符括在括号中。 例如,'[?]' 匹配字符 '?'。
pattern = "*[[]Ver.2]*"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.