为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用正则表达式更改具有特定值的字符串中的值?

如何使用正则表达式更改具有特定值的字符串中的值?

www说 2021-11-16 15:21:59
有一个带值的 df    0               1 0 RS 125       | password11 EURO 25      | password22 DNR 30       | password3使用正则表达式如何一次更改这些值就像 RS,EURO,DNR 之后的值应该替换为 100输出应该是    0               1 0 RS 100       | password11 EURO 100      | password22 DNR 100      | password3试过这个def Currency(0):    pattern = re.compile("(Rs |EURO |DNR |)")    result = pattern.match(name)试图替换匹配的。
查看完整描述

1 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

您可以使用

df['col'] = df['col'].str.replace(r'(?i)((?:Rs|EURO|DNR)\s*)\d+', r'\g<1>100')

或者,如果要将货币名称作为整个单词进行匹配,请在捕获组之前添加单词边界\b

r'(?i)\b((?:Rs|EURO|DNR)\s*)\d+'
      ^^

请参阅此正则表达式演示

细节

  • (?i) - 不区分大小写的标志

  • ((?:Rs|EURO|DNR)\s*)- 第 1 组(\g<1>在替换模式中是指此值):

    • (?:Rs|EURO|DNR)-RsEURODNR

    • \s* - 0+ 个空格

  • \d+ - 一位或多位数字

请参阅正则表达式演示


查看完整回答
反对 回复 2021-11-16
  • 1 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号