大佬教程收集整理的这篇文章主要介绍了正则表达式小结,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
学习完C++Primer第五版第十七章第三小节正则表达式后小结一下:
1、regex的匹配机制 不能直接确定输入序列中总共有多少表达式正确匹配给定的正则表达式。
注意:不要误认为match的成员函数size()返回的是匹配值的数量,匹配成功时size返回的是匹配的子表达式的数量+1(此处C++Primer上写的是子表达式的数量)
不论下式的myString为何值,size()值恒为3或0;
std::String myString ("subject"); std::smatch mymatches; std::regex myregex ("(sub)(.*)"); std::regex_match ( myString, mymatches, myregex ); mymatches.size();
2、定位符^和$不能作为匹配的内容只能代表位置:
1 @H_674_48@//@H_674_48@匹配一个开头是字母或者一个数字后跟一个字母的表达式 2 (^|\b)[a-zA-Z] @H_674_48@//@H_674_48@正确 3 [^\b][a-zA-Z] @H_674_48@//@H_674_48@错误 4 @H_674_48@//@H_674_48@匹配一个结尾是字母或者一个数字后跟一个字母的表达式 5 [a-zA-Z]($|\b] @H_674_48@//@H_674_48@正确 6 [a-zA-Z][$\b] @H_674_48@//@H_674_48@错误
3. 匹配一个空格用方括号中间加一个空格表示[ ]
4. 用整段或者整行(包含较多控制符如空格换行等)作为regex正则表达式的输入时,注意定位符^$代表的位置和控制符的匹配。
this code just for test
上式中开头定位符^在this之前,而for之前没有任何符号(个人猜测,未找到文献证明,如有不对请指出)。结尾定位符$在test之后。just后面有一个换行符\n或\r,即
^this code just\n for test$
以上是大佬教程为你收集整理的正则表达式小结全部内容,希望文章能够帮你解决正则表达式小结所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。