首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >匹配文件名开头和文件扩展名的正则表达式

匹配文件名开头和文件扩展名的正则表达式
EN

Stack Overflow用户
提问于 2008-10-08 23:42:28
回答 6查看 97.1K关注 0票数 25

匹配以“Run”开头且文件扩展名为“.py”的字符串(在本例中为文件名)的正则表达式是什么?

正则表达式应与以下任一项匹配:

代码语言:javascript
复制
RunFoo.py
RunBar.py
Run42.py

它不应该匹配:

代码语言:javascript
复制
myRunFoo.py
RunBar.py1
Run42.txt

我正在寻找的SQL等价物是... LIKE 'Run%.py' ...

EN

回答 6

Stack Overflow用户

发布于 2008-10-09 01:27:30

我真的不明白为什么你要用正则表达式来解决这个“问题”。您正在寻找一种方法来查找所有以“Run”开头的.py文件。因此,这是一个简单的解决方案,无需编译运行正则表达式即可工作:

代码语言:javascript
复制
import os
for filename in os.listdir(dirname):
    root, ext = os.path.splitext(filename)
    if root.startswith('Run') and ext == '.py':
        print filename
票数 15
EN

Stack Overflow用户

发布于 2008-10-08 23:46:25

代码语言:javascript
复制
/^Run.*\.py$/

或者,特别是在python中:

代码语言:javascript
复制
import re
re.match(r"^Run.*\.py$", stringtocheck)

这将匹配"Runfoobar.py",但不匹配"runfoobar.PY“。要使其不区分大小写,请改用:

代码语言:javascript
复制
re.match(r"^Run.*\.py$", stringtocheck, re.I)
票数 10
EN

Stack Overflow用户

发布于 2008-10-09 11:57:57

你不需要正则表达式,你可以使用glob,它接受通配符,例如Run*.py

例如,要获取当前目录中的这些文件...

代码语言:javascript
复制
import os, glob
files = glob.glob( "".join([ os.getcwd(), "\\Run*.py"]) )
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/185378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档