todorex / Coding-Interviews

📚剑指Offer(java版)
458 stars 130 forks source link

表示数值的字符串中 正则表达式代码有误 #8

Open tuziang-com opened 2 years ago

tuziang-com commented 2 years ago

正则表达式解法解法中:

匹配规则:[+-]?\\d*(\\.\\d+)?([eE][+-]?\\d+)? 有个问题,无法匹配233.这种小数点后没有数字的文本

书上有提到的:

            // 下面一行代码用||的原因
            // 1. 小数可以没有整数部分,如.123等于0.123
            // 2. 小数点后面可以没有数字,如233.等于233.0
            // 3. 当然,小数点前面和后面可以都有数字,如233.666

可以改成[+-]?[\\d]*[\\.]?[\\d]*([eE][+-]?\\d+)?