我的问题是我需要在一个字符串中找到多个元素。
例如,我得到一个字符串,如下所示:
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/