对于以下情况,我需要修复一些位于分隔符之间的文本:
情况1:{12345}
(curlies之间的数字)应变为item_12345
(添加'item_',删除大括号)。
案例2:[999]
(方括号内的数字)应为total_999
所以这个字符串:{242424} from X [100] bulks, linked to {57575757} from Y for [500] units
应该如下所示:item_242424 from X total_100 bulks, linked to item_57575757 from Y for total_500 units
如何使用正则表达式完成?
答案 0 :(得分:4)
这应该让你开始:
s = '{123} and [456]'
s = re.sub(r'\{(.+?)\}', r'foo_\1', s)
s = re.sub(r'\[(.+?)\]', r'bar_\1', s)
print s
答案 1 :(得分:0)
>>> import re
>>> curly = re.compile('\{([0-9]+)\}')
>>> square = re.compile('\[([0-9]+)\]')
>>> s = "{242424} from X [100] bulks, linked to {57575757} from Y for [500]"
>>> re.sub(square, lambda x: 'total_'+x.group(1), re.sub(curly, lambda x: 'item_
'+x.group(1),s))
'item_242424 from X total_100 bulks, linked to item_57575757 from Y for total_50
0'