题解 | #表示数值的字符串#

表示数值的字符串

https://www.nowcoder.com/practice/e69148f8528c4039ad89bb2546fd4ff8?tpId=13&tqId=1375424&ru=/exam/oj/ta&qru=/ta/coding-interviews/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D13

package main

import "regexp"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param str string字符串
 * @return bool布尔型
 */
func isNumeric( str string ) bool {
    // write code here
    reg := regexp.MustCompile(`^\s*[+-]?((\d+(\.\d*)?)|(\.\d+))([eE][+-]?\d+)?\s*$`)
    return reg.MatchString(str)
}

\s*: 匹配0个或多个空白字符

[+-]?:匹配+ -号 可有可无

((\d+(\.\d*)?)|(\.\d+)):匹配小数和整数,有两个子模式,用“|”号分开

子模式 1:(\d+(\.\d*)?)

\d+:匹配一个或多个数字,\d 等同于匹配数字 [0-9],+ 代表至少匹配一个

(\.\d*)?:

\.:匹配小数点字符 .

\d*:匹配 0 个或多个数字

(\.\d*)?:整个小数部分是可选的

也就是说,一个数字可以有或没有小数部分。eg:123:整数; 123.:带小数点但无小数位; 123.45:带小数点和小数位。

子模式 2:(\.\d+)

\.:匹配小数点字符 .

\d+:匹配一个或多个数字 eg: .123 前面没有整数部分,但必须有小数部分

([eE][+-]?\d+)?:整个部分用?表示可选,意味着指数部分可以出现,也可以不出现。

[eE]:匹配字符 e 或 E,这是科学计数法中指数部分的标记

[+-]?:同上

\d+:同上

全部评论

相关推荐

牛客915519934号:差不多得了 ,真以为我们好忽悠呢?当初就是听了你们的话没有赶上风口入行Java,现在还想再忽悠我呢?这明显就是一个新风口,国家大力发展制造业,以后这个圈子的钱只会越来越多,不管是入门还是大佬,只要进来少说有你一口饭吃,一个个自私自利自己上了车就劝退其他人,钱都让你赚得了呗。就这点东西,入门很容易的,学个pcb,单片机就可以去找工作了,少说一万五起,以后只会越来越高,以后想进阶就去FPGA,linux,给的钱吊打互联网,再说说你们一直说数电模电难?实际呢也不过一个月就能拿下的事情,你不需要学的多深,只需要入门就足够了,就按我说的学出来少说两万起,最好报个培训班,入门更快,兄弟们跟着我冲就完事了,趁着这个机会,狠狠赚他一笔。
点赞 评论 收藏
分享
头像
10-16 09:58
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务