1

对于以下情况,我需要修复位于分隔符之间的一些文本:
案例 1:({12345}大括号之间的数字)应该变为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

这怎么能用正则表达式来完成?

4

2 回答 2

4

这应该让你开始:

s = '{123} and [456]'

s = re.sub(r'\{(.+?)\}', r'foo_\1', s)
s = re.sub(r'\[(.+?)\]', r'bar_\1', s)

print s
于 2012-05-09T11:37:19.560 回答
1
>>> 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'
于 2012-05-09T11:50:24.593 回答