我有一个更具挑战性的任务,但首先我要面对这个问题。给定一个字符串s
,我想提取由一些分隔符(例如圆括号)标记的所有字符组。如何使用正则表达式(或任何Pythonic方法)实现这一点?你知道吗
import re
>>> s = '(3,1)-[(7,2),1,(a,b)]-8a'
>>> pattern = r'(\(.+\))'
>>> re.findall(pattern, s).group() # EDITED: findall vs. search
['(3,1)-[(7,2),1,(a,b)']
# Desire result
['(3,1)', '(7,2)', '(a,b)']
使用
findall()
而不是search()
。前者发现所有的发生,后者只发现第一个。你知道吗使用非贪婪的
?
运算符。否则,您将找到一个从第一个(
开始到最后一个)
结束的匹配。你知道吗请注意,正则表达式不是查找嵌套表达式的好工具,例如:
((1,2),(3,4))
。你知道吗使用re.findall()
输出:
相关问题 更多 >
编程相关推荐