全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1281 11
2018-04-19
请教一个正则表达式的写法:
a='abc123dd234'

第一个问题:
现有一个数字45,
将a改为abc45dd234

第二个问题:
现有一个数字456,
将a改为abc456dd234


即只将遇到的第一组数字替换,不是所有数字替换

谢谢

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-4-19 18:42:06
here you go:
####
import re
a = 'abc123dd234'
p1 = re.compile(r'\d+(?=\D+)')
a1 = p1.sub(r'45', a)
a2 = p1.sub(r'456',a)

print(f'a1 should be: {a1}, and a2: {a2}')
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-19 22:33:00
谢谢xjg
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-19 22:41:53
好像还不行,比如
a = 'abc123dd234fhgg'
p1 = re.compile(r'\d+\D+?')

后面的数字还是变,我的目的是想要123变成45或者456,后面所有的数字都不能动
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-19 22:54:28
import re
a = 'abc123dd234fhgg'
p1 = re.compile(r'(?<=\D\D\D)\d+')
a1 = p1.sub(r'45', a)
a2 = p1.sub(r'456',a)

print(f'a1 should be: {a1}, and a2: {a2}')
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-19 23:02:17
结果可以了,您能解释一下(?<=\D\D\D),这种REs写法没怎么见?谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群