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

Posted

技术标签:

【中文标题】如何使用正则表达式更改具有特定值的字符串中的值?【英文标题】:how to change values in a string with a particular value using regex? 【发布时间】:2019-07-16 10:08:54 【问题描述】:

有一个带有值的df

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

使用正则表达式如何立即更改这些值,喜欢 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)

尝试替换匹配的。

【问题讨论】:

【参考方案1】:

你可以使用

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&lt;1&gt; 指的是这个值): (?:Rs|EURO|DNR) - RsEURODNR \s* - 0+ 个空格 \d+ - 一位或多位数字

请参阅regex demo。

【讨论】:

以上是关于如何使用正则表达式更改具有特定值的字符串中的值?的主要内容,如果未能解决你的问题,请参考以下文章

用于捕获嵌套括号中的值的正则表达式

用于处理带有周围字符的值的正则表达式?

如何使用正则表达式从熊猫数据框中的一行中的字符串中提取所有特定值?

经典 ASP 中的正则表达式,以确定 URL 是不是具有特定字符串

如何使用正则表达式查找具有特定起始字符串的所有匹配项? [复制]

如何在jQuery中获取对具有特定值的表行的引用