在Python'中,如果子字符串在开头或中间匹配,如何获取字符串;那是什么?

在Python'中,如果子字符串在开头或中间匹配,如何获取字符串;那是什么?,python,regex,Python,Regex,第一个for循环打印“RC_test_CN_SK”和“SC_test_SRV”。 第二个for循环打印“test_SLU”、“test_CO”和“test_UL” 如何执行一次re.findall搜索并获得所需的五个文件?您可以使用正则表达式或运算符执行多个搜索在您的示例中,您可以执行以下循环: import re fileList = ['notamatch','RC_test_CN_SK','test_SLU','test_CO','test_UL','SC_test_SRV'] for

第一个for循环打印“RC_test_CN_SK”和“SC_test_SRV”。 第二个for循环打印“test_SLU”、“test_CO”和“test_UL”


如何执行一次re.findall搜索并获得所需的五个文件?

您可以使用正则表达式或运算符执行多个搜索在您的示例中,您可以执行以下循环:

import re
fileList = 
['notamatch','RC_test_CN_SK','test_SLU','test_CO','test_UL','SC_test_SRV']
for file in fileList:
    re.findall('\w+test\w+',file)
for file in fileList:
    re.findall('\Atest\w+',file)

如果找到
\w+test\w+
\Atest\w+
,则此查询将匹配。

如果您的值从字符串开头以0+字字符开始,然后包含
test
,则测试:

for file in fileList:
    re.findall('\w+test\w+|\Atest\w+',file)

请看

我没有看到任何打印声明我不明白findall是怎么回事?你想配什么?
RE|u nottest_CN_SK
是输入还是输出?您想要的与文件名中的
“test”有何不同?您可能需要
(^ | | |)test(| |$)
,它假设您想要匹配由|分隔的内容。@PeterWood RE.findall正在自动打印。如果不适合您,您可以在命令前面添加“print”使其打印。这在python shell中对我来说是失败的。这就是我一直在寻找的!谢谢@Wiktor。很高兴我能帮忙。请考虑采纳/接受答案。
import re
fileList = ['notamatch','RC_test_CN_SK','test_SLU','test_CO','test_UL','SC_test_SRV']
for file in fileList:
    if re.search(r'^\w*test', file):
        print(file)
# => ['RC_test_CN_SK','test_SLU','test_CO','test_UL','SC_test_SRV']