在正则表达式中匹配字符串片段

2 投票
4 回答
1195 浏览
提问于 2025-04-16 17:31

在Python中,我想得到一个像这样的字符串:

abcd[_FILE:foo.txt_]efghi[_FILE:bar.txt_]jklm[_FILE:foo2.txt_]

来进行匹配:

['foo.txt', 'bar.txt', 'foo2.txt']

但是我不知道怎么匹配完整的字符串片段,而不是单个的字符。有没有人知道我该怎么写一个正则表达式来匹配 '[FILE' 而不是 '[', '', 'F', 'I',等等。

4 个回答

2
import re
print re.findall('FILE:(\w+\.txt)', mystring)

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

4

试试这个模式:

import re
text = 'abcd[_FILE:foo.txt_]efghi[_FILE:bar.txt_]jklm[_FILE:foo2.txt_]'
pattern = re.compile('FILE:([\w\.]+)_\]')
pattern.findall(text)

输出结果:

['foo.txt', 'bar.txt', 'foo2.txt']
2
import re

regx = re.compile('[a-z]+\[_FILE:(.*?)_\]')


ch = 'abcd[_FILE:foo.txt_]efghi[_FILE:bar.txt_]jklm[_FILE:foo2.txt_] '

print regx.findall(ch)

[在正则表达式的模式中用来定义一个集合,所以当你想在模式中表示一个字符'['时,你必须对它进行转义。

撰写回答