首页 > 编程语言 >c++正则表达式汇总

c++正则表达式汇总

时间:2023-09-27 16:38:36浏览次数:40  
标签:数字 正则表达式 18 浮点数 汇总 zA c++ Za z0

一、校验字符的表达式

1 汉字:^[\u4e00-\u9fa5]{0,}$

2 英文和数字:^[A-Za-z0-9]+或[A−Za−z0−9]4,40

3 长度为3-20的所有字符:^.{3,20}$

4 由26个英文字母组成的字符串:^[A-Za-z]+$

5 由26个大写英文字母组成的字符串:^[A-Z]+$

6 由26个小写英文字母组成的字符串:^[a-z]+$

7 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$

8 由数字、26个英文字母或者下划线组成的字符串:^w+或w3,20

9 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$

10 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+Undefined control sequence \u

11 可以输入含有^%&',;=?

12 禁止输入含有~的字符:[^~\x22]+

二、校验数字的表达式

1、 n位的数字:^d{n}$

2 、数字:^[0-9]*$

3、 m-n位的数字:^d{m,n}$

4、 至少n位的数字:^d{n,}$

5、 零和非零开头的数字:^(0|[1-9][0-9]*)$

6 、非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

7、 带1-2位小数的正数或负数:^(-)?d+(.d{1,2})?$

8 、正数、负数、和小数:^(-|+)?d+(.d+)?$

9 、有两位小数的正实数:^[0-9]+(.[0-9]{2})?$

10 、有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$

11 、非零的正整数:^[1-9]d*或([1−9][0−9]∗)1,3 或 ^+?[1-9][0-9]*

12 、非零的负整数:^-[1-9][]0-9"*

13 、非负整数:^d+或[1−9]d∗|0

14 、非正整数:^-[1-9]d*|0或((−d+)|(0+))

15 、非负浮点数:^d+(.d+)?或[1−9]d∗.d∗|0.d∗[1−9]d∗|0?.0+|0

16 、非正浮点数:^((-d+(.d+)?)|(0+(.0+)?))或(−([1−9]d∗.d∗|0.d∗[1−9]d∗))|0?.0+|0

17 、正浮点数:^[1-9]d*.d*|0.d*[1-9]d*或(([0−9]+.[0−9]∗[1−9][0−9]∗)|([0−9]∗[1−9][0−9]∗.[0−9]+)|([0−9]∗[1−9][0−9]∗))

18 、负浮点数:^-([1-9]d*.d*|0.d*[1-9]d*)或(−(([0−9]+.[0−9]∗[1−9][0−9]∗)|([0−9]∗[1−9][0−9]∗.[0−9]+)|([0−9]∗[1−9][0−9]∗)))

19 、浮点数:^(-?d+)(.d+)?或−?([1−9]d∗.d∗|0.d∗[1−9]d∗|0?.0+|0)

三、特殊需求表达式

1、 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

2、 Email地址:^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$

3、手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]| 18[0|1|2|3|5| 6|7| 8

|9])d{8}$

4、 InternetURL:[a-zA-z]+://[^s]* 或 ^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$

5、 国内电话号码(0511-4405222、021-87888822):d{3}-d{8}|d{4}-d{7}

6 、电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^((d{3,4}-)|d{3.4}-)?d{7,8}$

7 、短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?或d8,18|[0−9x]8,18|[0−9X]8,18?

8 、身份证号(15位、18位数字):^d{15}|d{18}$

9 、帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

10、 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]w{5,17}$

11 、强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

12 、日期格式:^d{4}-d{1,2}-d{1,2}

13、 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$

14、 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$


作者:楚乔_0a40
链接:https://www.jianshu.com/p/3e545269b56b
来源:简书

正则表达式Regex(regular expression)是一种强大的描述字符序列的工具。在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分。

C++ regex正则表达式的规则和其他编程语言差不多,如下:

一、校验字符的表达式

1 汉字:^[\u4e00-\u9fa5]{0,}$

2 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

3 长度为3-20的所有字符:^.{3,20}$

4 由26个英文字母组成的字符串:^[A-Za-z]+$

5 由26个大写英文字母组成的字符串:^[A-Z]+$

6 由26个小写英文字母组成的字符串:^[a-z]+$

7 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$

8 由数字、26个英文字母或者下划线组成的字符串:^w+$ 或 ^w{3,20}$

9 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$

10 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

11 可以输入含有^%&',;=?$"等字符:[^%&',;=?$\x22]+

12 禁止输入含有~的字符:[^~\x22]+

   

二、校验数字的表达式

1、 n位的数字:^d{n}$

2 、数字:^[0-9]*$

3、 m-n位的数字:^d{m,n}$

4、 至少n位的数字:^d{n,}$

5、 零和非零开头的数字:^(0|[1-9][0-9]*)$

6 、非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

7、 带1-2位小数的正数或负数:^(-)?d+(.d{1,2})?$

8 、正数、负数、和小数:^(-|+)?d+(.d+)?$

9 、有两位小数的正实数:^[0-9]+(.[0-9]{2})?$

10 、有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$

11 、非零的正整数:^[1-9]d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^+?[1-9][0-9]*$

12 、非零的负整数:^-[1-9][]0-9"*$ 或 ^-[1-9]d*$

13 、非负整数:^d+$ 或 ^[1-9]d*|0$

14 、非正整数:^-[1-9]d*|0$ 或 ^((-d+)|(0+))$

15 、非负浮点数:^d+(.d+)?$ 或 ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$

16 、非正浮点数:^((-d+(.d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$

17 、正浮点数:^[1-9]d*.d*|0.d*[1-9]d*$ 或 ^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$

18 、负浮点数:^-([1-9]d*.d*|0.d*[1-9]d*)$ 或 ^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$

19 、浮点数:^(-?d+)(.d+)?$ 或 ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$

小编推荐一个学C语言/C++的学习裙【 六四二,一二零,九一四 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!学习更多C/C++相关知识也可以去公众号——“huainian_c”。

三、特殊需求表达式

1、 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

2、 Email地址:^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$

3、手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$

4、 InternetURL:[a-zA-z]+://[^s]* 或 ^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$

5、 国内电话号码(0511-4405222、021-87888822):d{3}-d{8}|d{4}-d{7}

6 、电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^((d{3,4}-)|d{3.4}-)?d{7,8}$

7 、短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$

8 、身份证号(15位、18位数字):^d{15}|d{18}$

9 、帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

10、 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]w{5,17}$

11 、强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

12 、日期格式:^d{4}-d{1,2}-d{1,2}

13、 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$

14、 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$




标签:数字,正则表达式,18,浮点数,汇总,zA,c++,Za,z0
From: https://www.cnblogs.com/yyybill/p/17732998.html

相关文章

  • C++多线程Multithreading std::condition_variable
    多线程Multithreading#include<iostream>#include<thread>#include<mutex>#include<condition_variable>std::mutexmtx;std::condition_variablecv;boolisOdd=true;voidprintOdd(){for(inti=1;i<=100;i+=2){......
  • opencv 图像处理方法汇总
      Qt的简单使用:https://www.cnblogs.com/carsonzhu/p/10815654.html一个案例:图像处理仿真平台https://blog.csdn.net/qq_37340229/article/details/128685044该系统主要针对医学超声图像进行处理,基本涵盖了医学图像处理的经典处理方法,有图像增强、图像滤波、边缘检测、......
  • C++启动.bat文件
    在C++中启动一个.bat文件,你可以使用标准库中的system函数。这个函数可以让你在C++程序中执行外部命令。#include<cstdlib>intmain(){//在这里替换成你的.bat文件的路径constchar*batchFilePath="C:\\Path\\To\\Your\\BatchFile.bat";//使用system函......
  • 库函数 | C++17 std::filesystem文件系统 用法指北
    本文将针对常用的场景,对std::filesystem的使用逐一进行验证:判断文件夹是否存在创建单层目录逐级创建多层目录创建多级目录当前文件路径创建文件"from.dat"获取相对于base的绝对路径文件拷贝移动文件或重命名创建文件“example.dat”获取文件大小获取文件最后修改......
  • C++函数返回对象效率以及使用建议
    C++中函数返回值与拷贝白给程序猿 最新推荐文章于 2022-08-2218:48:40 分类专栏: c++ 文章标签: c++ 编程语言五一假期最后一天,看JUC看的头疼,写写blog放松一下。作为自己的第一篇blog,自己就先来谈谈对C++中函数返回return的理解,自己本来在学Java,但是平......
  • C++引用10分钟入门教程
    C++引用10分钟入门教程< C++引用C++引用在本质上是什么,它和指针到底有什么区别? > 我们知道,参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。对于像char、bool、int、float等基本类型的数据,它们占用的内......
  • C++内存管理
    primitives(基本工具)对比malloc,free不可重载c函数new,delete不可重载C++表达式::operatornew(),::operatordelete()可重载C++函数allocator<T>::allocate(),allocator<T>::deallocate()可自由设计并以之搭配任何容器C++标准......
  • C++ 采用read()和write()读写二进制文件
    以文本形式读写文件和以二进制形式读写文件的区别,并掌握了用重载的>>和<<运算符实现以文本形式读写文件。在此基础上,本节继续讲解如何以二进制形式读写文件。举个例子,现在要做一个学籍管理程序,其中一个重要的工作就是记录学生的学号、姓名、年龄等信息。这意味着,我们需要用一个......
  • C++知识点
    以文本形式读写文件和以二进制形式读写文件的区别,并掌握了用重载的>>和<<运算符实现以文本形式读写文件。在此基础上,本节继续讲解如何以二进制形式读写文件。举个例子,现在要做一个学籍管理程序,其中一个重要的工作就是记录学生的学号、姓名、年龄等信息。这意味着,我们需要用一个......
  • C#6-c#7 知识点使用汇总
    七、C#6.0语法及使用6.0.01usingstatic静态导入指令命名了一种类型,无需指定类型名称即可访问其静态成员和嵌套类型.demo:usingstaticSystem.Console;WriteLine("dennychen");//System.Console.WriteLine("dennychen");6.0.02trycatchwhen异常筛选器:仅在满足某些......