繁体   English   中英

python fnmatch.fnmatch("[seq]") 转义不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM