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']
诀窍是使用.*?
which is a non-greedy *
。
推荐阅读
- ubuntu-18.04 - 在 Ubuntu 18.04 上安装 python-poppler-qt4
- arm - 为什么 Eclipse CDT Indexer 不索引正确的配置?
- java - 从请求中获取 Keycloak auth-server-url?
- c++ - 当仅影响静态方法时,如何解决 C++ 中的链接器错误?
- gitlab - 时间:一些分支机构的手册
- r - 如何在 R 统计中结合两个函数?
- android - 在 Android Studio 中使用 Kotlin 构建一个简单的 MediaPlayer。无法获取要流式传输的 URL 数据源
- visual-studio - I'm getting a package Microsoft.Build 16.3.0 is not compatible with netstandard 2.0 error
- javascript - 在 ASP.NET MVC 中为 GridView 创建动态工具提示
- analysis - Zeek (Bro) 根据输入文件重命名日志