正则表达式匹配数字之间的特殊字符

时间:2020-05-26 07:32:45

标签: python regex

条件: 1至2位数字,后跟可选的[ . , ” ’] + 1至4位数字

示例:

7 M
13.6 M
8.205m
9.,56m

预期结果:

7
13.6
8.205
9.,56

我尝试过的正则表达式模式:

(?:^\d{1,2})(?:[\.\,\’\"]{0,2})\d{0,4} 

这无法正常工作。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

您不需要字符类中的空格,也不必转义字符。

匹配可选数字\d{0,4}也可能匹配13.

您可以使第二部分为可选字符,包括字符类和数字,并使用量词+

^\d{1,2}(?:[.,”’]+\d{1,4})?

Regex demo

如果应该有M,则可以使用捕获组

^(\d{1,2}(?:[.,”’]+\d{1,4})?) ?[Mm]$

Regex demo