学习完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 //匹配一个开头是字母或者一个数字后跟一个字母的表达式2 (^|\b)[a-zA-Z]//正确3 [^\b][a-zA-Z]//错误4 //匹配一个结尾是字母或者一个数字后跟一个字母的表达式5 [a-zA-Z]($|\b]//正确6 [a-zA-Z][$\b]//错误
3. 匹配一个空格用方括号中间加一个空格表示[ ]
([ ]|^)//代表在开头或者前面是一个空格
4. 用整段或者整行(包含较多控制符如空格换行等)作为regex正则表达式的输入时,注意定位符^$代表的位置和控制符的匹配 。
this code just for test 上式中开头定位符^在this之前,而for之前没有任何符号(个人猜测,未找到文献证明,如有不对请指出) 。结尾定位符$在test之后 。just后面有一个换行符\n或\r,即
【正则表达式小结】^this code just\nfor test$
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
