python - 在 Python 中查找字符串中的多个元素

标签 python

我的问题是我需要在一个字符串中找到多个元素。

例如,我得到一个字符串,如下所示:

line = if ((var.equals("INPUT")) || (var.equals("OUTPUT"))

然后我得到这段代码来查找'(“'和'“)'之间的所有内容

char1 = '("'
char2 = '")'


add = line[line.find(char1)+2 : line.find(char2)]
list.append(add)

目前的结果只是:

['INPUT']

但我需要这样的结果:

['INPUT','OUTPUT', ...]

在获得第一个匹配项后,它停止搜索其他匹配项,但我需要在该字符串中找到与该搜索匹配的所有内容。

我还需要将每个匹配项附加到列表中。

最佳答案

最简单的:

>>> import re
>>> s = """line = if ((var.equals("INPUT")) || (var.equals("OUTPUT"))"""
>>> r = re.compile(r'\("(.*?)"\)')
>>> r.findall(s)
['INPUT', 'OUTPUT']

诀窍是使用 .*?,这是一个非贪婪的 *

关于python - 在 Python 中查找字符串中的多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53443047/

相关文章:

python - 导入时传递 arg

python - 如何正确测量 Linux 上的进程内存使用情况?

python - Zope 中 Python 脚本的 i18n(受限 python)

python - 如何在 Json Schema 中使用 $ref 的相对路径

java - 适合什么控制流程 "if A, then do a; if B, then do a, b; if C, then do a, b, c ..."

python - 设置 OpenAI API 访问时为 "Malformed API key in .env"

python - 迭代 pandas 数据帧的索引

python - 如何使用 python 解析 xml 提要?

python - PyQt:如何动态调用objectNames?

python - 每天金额翻倍,需要将便士数量转换为美元+美分