某些角色之间的正则表达式

时间:2014-08-18 04:18:46

标签: python regex

输入:

[1] string1 [2] string 2[3]string3 [5]string4

输出:

string1
string 2
string 4

如何用“regex”python解析案例为“input”和结果“output”?

2 个答案:

答案 0 :(得分:0)

您的说明有点含糊,说 - 使用您提供的示例输入:

import re
line = '[1] string1 [2] string 2[3]string3 [5]string4'
matches = re.match(r'\[1\] (.*?)\[2\] (.*?)\[3\](.*?)\[5\](.*)', line)

print matches.group(1) # prints string1
print matches.group(2) # prints string 2
print matches.group(3) # prints string3 
print matches.group(4) # prints string4

答案 1 :(得分:0)

如果索引的值前面跟不是空格或起始锚点的字符,似乎你不想要索引的值,

>>> s = "[1] string1 [2] string 2[3]string3 [5]string4"
>>> import regex
>>> m = regex.findall(r'(?<= |^)\[\d+\]\s*([^\[]*)', s)
>>> for i in m:
...     print i
... 
string1 
string 2
string4