第1课:匹配十进制数

乍一看,写一个正则表达式来匹配数字似乎很简单,对吧?

我们可以用 \d 来匹配任意数字,然后再匹配一个小数点就可以了,不是吗?对于简单的数字来说,这样的确可行。但当我们处理科学或金融领域的数字时,常常还要面对正负号、有效数字、指数形式,甚至不同的数字表示方式(例如使用逗号来分隔千位和百万位)。

下面是一些你可能会遇到的不同格式的数字。

练习 1: 匹配数字
Task Text  
匹配 3.14529 To be completed
匹配 -255.34 To be completed
匹配 128 To be completed
匹配 1.9e10 To be completed
匹配 123,340.00 To be completed
跳过 720p To be completed
提示

表达式 ^-?\d+(,\d+)*(\.\d+(e\d+)?)?$ 可以匹配以下形式的字符串:以一个可选的负号开头,接着是一个或多个数字,后面可以跟着若干个逗号+数字的组合(表示千位分隔),然后是一个可选的小数部分(包括一个小数点和一位或多位数字),最后还可以有一个可选的指数部分,即 e 后跟一位或多位数字。当然,这并不是唯一的解决方案,因为可以用多种方式编写正则表达式来匹配这一组数字格式。

解决上面的问题以继续到, 或者可以参考答案