"replace all after first 2 digits after comma" 的正则表达式
Regex for "replace all after first 2 digits after comma"
我想替换逗号后前 2 位数字之后的所有字符。
例如有一串 1234,56789
应该导致 1234,56
.
使用 [^,]*$
使我走上了正确的道路,但删除了逗号后的所有内容。
A [^,]..$
也没有给我正确的结果,因此我需要一种方法来告诉我的表达式必须删除“逗号后的前 2 位数字”,而不是“最后 2 位数字”因为这就是“..”在我的表达中所做的事情。
您可以使用
(,\d{2}).*
正则表达式匹配并 捕获到第 1 组 一个逗号和两个数字,并且只匹配行的其余部分 .*
。
仅在最后一个逗号后删除:
(.*,\d{2}).*
这里,开头的 .*
也捕获字符串开头的所有内容。
限制性更强的模式是
^(\d+,\d{2})\d*$
它匹配字符串的开头(用^
),然后是一个或多个数字(用\d+
),一个逗号,两个数字,都被捕获到第1组,然后只匹配零或更多数字(带 \d*
)在字符串末尾 ($
).
替换为 </code>(或 <code>
,具体取决于正则表达式引擎)。见 regex demo (also this one and this one, too).
您可以使用:
import re
re.sub(r',(\d{2}).*', r',', a)
我想替换逗号后前 2 位数字之后的所有字符。
例如有一串 1234,56789
应该导致 1234,56
.
使用 [^,]*$
使我走上了正确的道路,但删除了逗号后的所有内容。
A [^,]..$
也没有给我正确的结果,因此我需要一种方法来告诉我的表达式必须删除“逗号后的前 2 位数字”,而不是“最后 2 位数字”因为这就是“..”在我的表达中所做的事情。
您可以使用
(,\d{2}).*
正则表达式匹配并 捕获到第 1 组 一个逗号和两个数字,并且只匹配行的其余部分 .*
。
仅在最后一个逗号后删除:
(.*,\d{2}).*
这里,开头的 .*
也捕获字符串开头的所有内容。
限制性更强的模式是
^(\d+,\d{2})\d*$
它匹配字符串的开头(用^
),然后是一个或多个数字(用\d+
),一个逗号,两个数字,都被捕获到第1组,然后只匹配零或更多数字(带 \d*
)在字符串末尾 ($
).
替换为 </code>(或 <code>
,具体取决于正则表达式引擎)。见 regex demo (also this one and this one, too).
您可以使用:
import re
re.sub(r',(\d{2}).*', r',', a)