"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)