gpt4 book ai didi

Python - 正则表达式搜索以给定文本开头和结尾的字符串

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:46 25 4
gpt4 key购买 nike

我有一个文件列表,我只想保留以“test_”开头并以“.py”结尾的文件。我希望正则表达式只返回“test_”和“.py”中的文本。我不想包含 .pyc 文件。

我试过:

>>>filename = 'test_foo.py'
>>>re.search(r'(?<=test_).+(?=\.py)', filename).group()
foo.py

但它仍然返回扩展名,并且将允许“.pyc”扩展名(我不想要)。我很确定是“+”占用了整个字符串。

这可以作为后备方案,但我更喜欢正则表达式解决方案:

>>>filename = 'test_foo.py'
>>>result = filename.startswith('test_') and filename.endswith('.py')
>>>result = result.replace('test_', '').replace('.py', '')
>>>print result
foo

最佳答案

问题是您的模式匹配 test_ 之后和 .py 之前的任何字符串,但这并不限制它在 test_.py 之后。

你需要使用开始(^)和结束($)anchors .另外,不要忘记转义 . 字符。试试这个模式:

(?<=^test_).+(?=\.py$)

关于Python - 正则表达式搜索以给定文本开头和结尾的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18129041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com