在Python中提取分隔符[]之间的单词
我想从下面这个字符串中提取出方括号 [ ]
之间的词,比如 'Service Current','Service','9991','1.22'
:
str='mysrv events Generating Event Name [Service Current], Category [Service] Test [9991] Value [1.22]'
我该如何在Python中提取这些内容呢?
3 个回答
2
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们不太了解这些工具的工作原理时。
比如说,有人可能在使用某个特定的编程语言时,发现自己写的代码没有按照预期的方式运行。这种情况可能是因为代码中有错误,或者是因为我们对这个工具的理解不够深入。
在这种情况下,寻求帮助是很重要的。我们可以在网上找到很多资源,比如论坛、教程或者问答网站。在这些地方,我们可以看到其他人遇到类似问题时是怎么解决的,或者直接向他们提问。
总之,编程是一项需要不断学习和实践的技能,遇到问题是很正常的。关键是要保持耐心,积极寻找解决方案。
re.findall(r'\[([^\]]*)\]', str)
8
你可以使用正则表达式。
import re
s = re.findall('\[(.*?)\]', str)
24
首先,尽量不要把 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'\[(.*?)\]'
这个正则表达式通过使用非贪婪匹配来工作,而不是匹配除了 ]
以外的任何东西。