如何使用regex更改具有特定值的字符串中的值?

2024-04-25 23:05:41 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个带有值的df

    0               1 
0 RS 125       | password1
1 EURO 25      | password2
2 DNR 30       | password3

使用regex如何一次改变这些值,比如RS,EURO,DNR之后的值应该替换为100

输出应为

    0               1 
0 RS 100       | password1
1 EURO 100      | password2
2 DNR 100      | password3

试过这个

def Currency(0):

    pattern = re.compile("(Rs |EURO |DNR |)")
    result = pattern.match(name)

试图替换匹配的。你知道吗


Tags: redfdefresultcurrencyregexpatterncompile
1条回答
网友
1楼 · 发布于 2024-04-25 23:05:41

你可以用

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+'
      ^^

this regex demo。你知道吗

细节

  • (?i)-不区分大小写标志
  • ((?:Rs|EURO|DNR)\s*)-第1组(替换模式中的\g<1>表示该值):
    • (?:Rs|EURO|DNR)-RsEURODNR
    • \s*-0+空格
  • \d+-一个或多个数字

参见regex demo。你知道吗

相关问题 更多 >