从下面的字符串中,我想提取[ ]
之类的分隔符'Service Current','Service','9991','1.22'
之间的字词:
str='mysrv events Generating Event Name [Service Current], Category [Service] Test [9991] Value [1.22]'
如何在python中提取相同内容?
提前致谢 克里斯
答案 0 :(得分:19)
首先,避免使用str
作为变量名。 str
已经在Python中具有意义,并且通过将其定义为其他东西,您会让人感到困惑。
说过你可以使用以下正则表达式:
>>> import re
>>> print re.findall(r'\[([^]]*)\]', s)
['Service Current', 'Service', '9991', '1.22']
其工作原理如下:
\[ match a literal [ ( start a capturing group [^]] match anything except a closing ] * zero or more of the previous ) close the capturing group \] match a literal ]
另一种正则表达式是:
r'\[(.*?)\]'
这可以使用非贪婪的匹配,而不是匹配除]
之外的任何内容。
答案 1 :(得分:4)
你可以使用正则表达式
import re
s = re.findall('\[(.*?)\]', str)
答案 2 :(得分:2)
re.findall(r'\[([^\]]*)\]', str)