楼主: hshly
1330 11

[问答] 请教一个正则表达式怎么写,谢谢 [推广有奖]

  • 1关注
  • 25粉丝

高级会员

已卖:11份资源

学术权威

2%

还不是VIP/贵宾

-

威望
0
论坛币
1764290 个
通用积分
493.3863
学术水平
13 点
热心指数
17 点
信用等级
8 点
经验
37289 点
帖子
877
精华
0
在线时间
8662 小时
注册时间
2004-12-13
最后登录
2025-12-29

楼主
hshly 发表于 2018-4-19 12:50:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请教一个正则表达式的写法:
a='abc123dd234'

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

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


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

谢谢

二维码

扫码加我 拉你入群

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

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

关键词:正则表达式 表达式 ABC

沙发
xjg 发表于 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}')
已有 1 人评分热心指数 收起 理由
hshly + 5 精彩帖子

总评分: 热心指数 + 5   查看全部评分

藤椅
hshly 发表于 2018-4-19 22:33:00
谢谢xjg

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

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

报纸
xjg 发表于 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}')
已有 1 人评分热心指数 收起 理由
hshly + 5 精彩帖子

总评分: 热心指数 + 5   查看全部评分

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

7
xjg 发表于 2018-4-19 23:02:53
import re
a = 'abc123dd234fhgg'
p1 = re.compile(r'\d+(?=\D+)')
a1 = p1.sub(r'45', a,1)
a2 = p1.sub(r'456',a,1)

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

8
xjg 发表于 2018-4-19 23:03:25
这个也可以

9
hshly 发表于 2018-4-19 23:05:44
嗯,可以,谢谢

10
hshly 发表于 2018-4-19 23:06:37
(?=\D+)或者(?<=\D\D\D),您这个写法能解释一下吗?有点困惑,谢谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 08:41