Python按开始和结束字符拆分字符串

标签 python string list

假设您有这样一个字符串:"(hello) (yes) (yo diddly)"

你想要这样的列表:["hello", "yes", "yo diddly"]

你会如何使用 Python 来做到这一点?

最佳答案

import re
pattern = re.compile(r'\(([^)]*)\)')

该模式与您的字符串 (\(...\)) 中的括号匹配,这些需要转义。
然后它定义了一个子组 ((...)) - 这些括号是正则表达式语法的一部分。
子组匹配除右括号 ([^)]*) 以外的所有字符

s = "(hello) (yes) (yo diddly)"
pattern.findall(s)

给予

['hello', 'yes', 'yo diddly']

更新:
最好使用 [^)]+ 而不是 [^)]*。后者也会匹配一个空字符串。

按照 DSM 的建议,使用非贪婪修饰符可以使模式更易读:pattern = re.compile(r'\((.+?)\)')

关于Python按开始和结束字符拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12231193/

相关文章:

python - 如何从psychopy的iohub动态重命名hdf5文件

mysql - 从 MySQL 中的列表字符串中获取单个项目

C++ 获取目录前缀

c++ - 在 C++ 中解析字符串以分配参数

excel - 将多个值存储到字典中

python - 迭代两个列表的列表理解没有按预期工作

python - 在python中打开应用程序时的错误处理

python - 通过 zbar 和 Raspicam 模块扫描二维码

Python 可能的舍入错误?

替换出现在字符串末尾的文本