我的文件夹中有几个文件,我想找出内容并匹配其文件名。但是,当我使用re.search实现我的目标时,我只会得到“无”。有人可以帮忙吗?
import re
xe = r'D:\ABC\cc123.xml'
re.search('cc*?.xml', xe)
答案 0 :(得分:2)
(尽管答案是可以接受的,但我认为答案对其他人来说并不明确,还有改进的余地,因此我在此处添加了新答案)
问题是OP只是使用了错误的正则表达式:cc*?.xml
*
表示之前令牌的任何出现(在您的情况下,表示c
)
*?
是任何情况下都不愿意的匹配。
.
表示任何字符
这意味着您要尝试匹配的字符串是:
c
xml
匹配字符串的示例是c.xml
ccccccAxml
等。
我认为您想做的是
cc.*?\.xml
这意味着匹配
cc
.*?
:后面出现任何字符,尽可能少地匹配\.
:后跟一个点(请注意\.
与.
的区别)xml
答案 1 :(得分:1)
如何稍微调整一下?
import re
xe = 'D:\ABC\cc123.xml'
print (re.search('cc.*?.xml', xe).group())
输出:
cc123.xml