2 damndarn damndarn 于 2016.05.05 13:38 提问

python 正则表达式替换的问题 re.sub

要求:
查找字符串str中紧挨着‘-’后的两个数字字符,将其替换为99.
比如str = 'adbc33df-23djk';
要求将23替换成99.
我试了str1 = re.sub('-/d/d', '99', str); print str1;
结果会将‘-23’一起替换为99.
我试着参照perl的做法,加上圆括号:
str1 = re.sub('-(/d/d)', '99', str);
print str1;
照样不行。
哪位大神指导下?
感觉python在正则表达式上不及perl好用

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.05.05 18:23
已采纳
 str1 = re.sub('-\d\d', '-99', str)
damndarn
damndarn 应该是 str1 =re.sub(r'(.*-)[0-9]+(.*)',r'\g<1>99\g<2>',str);
一年多之前 回复
CSDNXIAOD
CSDNXIAOD   2016.05.05 13:42

python re正则表达式
Python - 连续替换(replace)的正则表达式(re)
python正则表达式 re (二)sub
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!