我正在尝试拆分一个字符串,例如: add(ten)sub(one)
into add(ten) sub(one)
. 我不知道如何匹配右括号。我已经使用re.sub(r'\\)', '\\) ')
了各种转义括号的变体,我能想到。用这种字体很难分辨,但我试图在这些命令之间添加一个空格,以便稍后将其拆分为一个列表。
问问题
1289 次
3 回答
1
d = ')'
my_str = 'add(ten)sub(one)'
result = [t+d for t in my_str.split(d) if len(t) > 0]
结果 = ['添加(十)','子(一)']
于 2013-09-06T19:28:10.107 回答
1
)
在替换字符串中不需要转义,)
仅在正则表达式模式中具有特殊的特殊含义,因此需要在此处进行转义以便在字符串中匹配它,但在普通字符串中它可以按原样使用。
>>> strs = "add(ten)sub(one)"
>>> re.sub(r'\)(?=\S)',r') ', strs)
'add(ten) sub(one)'
正如@StevenRumbalski 在评论中指出的那样,上述操作可以简单地使用str.replace
and完成str.rstrip
:
>>> strs.replace(')',') ').strip()
'add(ten) sub(one)'
于 2013-09-06T19:15:14.810 回答
0
创建所有子字符串的列表
import re
a = 'add(ten)sub(one)'
print [ b for b in re.findall('(.+?\(.+?\))', a) ]
输出:
['add(ten)', 'sub(one)']
于 2013-09-06T19:25:47.073 回答