在Python中提取分隔符[]之间的单词

9 投票
3 回答
34537 浏览
提问于 2025-04-15 22:49

我想从下面这个字符串中提取出方括号 [ ] 之间的词,比如 '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'\[(.*?)\]'

这个正则表达式通过使用非贪婪匹配来工作,而不是匹配除了 ] 以外的任何东西。

撰写回答