正则表达式在python中的分隔符之间替换文本

时间:2012-05-09 11:30:07

标签: python regex

对于以下情况,我需要修复一些位于分隔符之间的文本:
情况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

如何使用正则表达式完成?

2 个答案:

答案 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'