正则表达式为“用逗号替换前两位后的所有数字”

问题描述

我想替换逗号后前两位数字后的所有字符。

例如字符串为1234,56789的结果应为1234,56

使用[^,]*$已将我带到正确的路径,但删除了逗号后的所有内容

[^,]..$也不能给我正确的结果,因此我需要一种方法来告诉我的表达式,“逗号后面的前2位数字”必须删除,而不是“最后2位数字”,因为那是“ ..”在我的表情中似乎是做什么的。

解决方法

您可以使用

(,\d{2}).*

正则表达式将逗号和两位捕获并捕获到组1 中,并将它们与.*匹配。

要仅在最后一个逗号后删除:

(.*,\d{2}).*

在这里,.*开头也会捕获字符串开头的所有内容。

一种更具限制性的模式

^(\d+,\d{2})\d*$

它匹配字符串的开头(用^,然后匹配一个或多个数字(用\d+),一个逗号,两个数字,都捕获到组1中,然后匹配零个或多个字符串(\d*的末尾有数字($)。

替换为$1(或\1,具体取决于正则表达式引擎)。参见regex demo(另请参见this onethis one,too)。

,

您可以使用:

import re
re.sub(r',(\d{2}).*',r',\1',a)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...