在正则表达式中匹配字符串片段
在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)
[在正则表达式的模式中用来定义一个集合,所以当你想在模式中表示一个字符'['时,你必须对它进行转义。