cpp正则表达式解法

表示数值的字符串

http://www.nowcoder.com/questionTerminal/6f8c901d091949a5837e24bb82a731f2

第一次正经八百地接触正则表达式,先看了半小时,摸到了一点感觉和苗头,明白了它是一种模式,模板,公式,也确实明白了它真的很有用,比如匹配邮箱什么的,很有意思,也稍微看了他的组件:普通字符和元字符。但是对元字符的掌握还很差,自己写不出来下面用到的正则表达式,是看的题解,别人用的Java,我虽然用cpp,但是正则表达式一样,去看了看cpp的正则表达式函数,用了这个regex_match全面匹配函数,很成功。

很奇怪的一点:牛客竟然没有预加载c++的正则表达式库regex,需要自己添加。一般的库比如vector,queue,algorithm,string这都时预加载了的,不需要自己include。

#include <regex>
class Solution {
public:
       bool isNumeric(char* s)
    {
        if (!s || *s=='\0')
            return false;
        return regex_match(s,regex("^[-+]?\\d*(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?$"));//全文匹配

    }

};
全部评论
请问匹配.的时候为什么加了两个转义字符\\啊,用\.不就已经对.转义了吗,这不太明白
点赞 回复 分享
发布于 2020-07-21 16:07

相关推荐

不愿透露姓名的神秘牛友
07-24 13:40
点赞 评论 收藏
分享
DKS233:(1)专业技能:Java8也太旧了,最少也要了解到JDK17吧,可以参考现在SpringBoot支持的Java最低版本,熟悉mysql基本理论具体指啥,是锁这种具体原理还是分库分表这些业务场景,spring这些专业词汇,大小写要写对(全篇简历都有这个问题,显得不严谨),熟悉使用框架进行业务开发就别写了,如果要写,起码要写到框架原理部分吧,比如aop,启动原理什么的,springcloud具体指哪些模块呢,写清楚,网关还是鉴权还是什么,“改造”没必要写吧,你直接说用springcloud开发的不就行了(2)项目经历:首先格式就有大问题,时间怎么能换行呢,调整一下,响应速度那个,如果指的是将部分数据从其他数据库转到redis的提升就别写了,因为这个不算难点,redis可以写写分布式这些,比如容灾怎么实现的,数据库同步怎么做的
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务