详解正则表达式

来源:互联网 发布:易语言玫瑰花表白源码 编辑:程序博客网 时间:2024/06/05 15:48
#include<string>#include<iostream>#include<regex>using namespace std;int main(int argc, char argv){//定义要匹配的模式字符串regex r("^\\d{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|[1-2][0-9]|3[0-1])$");string temp;while (true){//定义变量表示要输入的字符串if (!getline(cin, temp) || temp == "q")break;if (regex_match(temp, r)){cout << "vilid data:" << endl;}else{cout << "Unvilid data:" << endl;}}return 0;}
通过对下面的正则表达式进行解释,来说明表达式中符号的意义

regex r("^\\d{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|[1-2][0-9]|3[0-1])$");

1:r("^为开始标志;

2:\\d第一个\是转义字符的意义,\d是表示的[:didital:]表示从0到9中间的任意个数字

3:(?:)由于在正则表达式中添加括号会是的在表达式中添加新的捕捉组,而通过(?:..)可以做到,只改变优先级而不添加新的捕捉组的目的

4:0?表示0为可选(零次或者多次)

5:[0-9]的意义等同于\d

6:|该符号的意义为“或者”

7:)&“为结束标志


0 0
原创粉丝点击