我在文件夹中有几个文件,我想找出内容并匹配其文件名。但当我使用re.search来实现我的目标时,我只能得到"无"。有人能帮忙吗?
import re
xe = r'D:ABCcc123.xml'
re.search('cc*?.xml', xe)
(虽然有一个公认的答案,但我觉得其他人的答案并不清楚,还有改进的空间,所以我在这里添加了一个新的答案(
问题只是OP使用了错误的正则表达式:cc*?.xml
*
表示出现前标记的任何情况(在您的情况下表示c
(*?
在任何情况下都是勉强匹配的。.
表示任何字符
这意味着你要做的是匹配一个字符串,它是:
- a
c
- 然后出现c
- 后面跟任意字符
- 然后是
xml
匹配字符串的示例为c.xml
ccccccAxml
等
我相信你想做的是
cc.*?.xml
这意味着匹配
cc
.*?
:后面跟着任何字符的出现,尽可能少地匹配.
:后面跟着一个点(注意.
和.
的区别(- 然后是
xml
像这样稍微调整一下怎么样?
import re
xe = 'D:ABCcc123.xml'
print (re.search('cc.*?.xml', xe).group())
输出:
cc123.xml