c++ boost库正则表达式的一些经验
2013-03-13 09:21
411 查看
首先,我的匹配设置为:
// 忽略大小写
regex expression( str_pattern , boost::regbase::normal|boost::regbase::icase);
如果要匹配的字符串当中含有双引号
比如: acp"abc"dgg ,在c++当中写法如下:
string aa = "acp\"abc\"dgg";
要提取当中的abc,那么pattern应该怎么写呢?
找规律发现只要这样写就行:
string pattern = "p\"(.*?)\"d";
如果要匹配的字符串当中带有2个空格,acp "abc" dgg , 则可以用 +代替(注意前面有一个空格,加号是重复1次或者多次的意思)
string pattern = "p +\"(.*?)\" +d";
经过网上查询,boost匹配规则,注意这个规则可能和其他的regex库不一样,因为有不同的format限制:
(参考文献:http://blog.csdn.net/sammy_chan/article/details/8440230)
Escapes 转义符:
\cX 一个ASCII转义序列 - 字符码点为 X % 32
\xdd 一个十六进制转义序列 - 匹配码点为0xdd的单个字符。
\x{dddd} 一个十六进制转义序列 - 匹配码点为0xdddd的单个字符。
\0ddd 八进制转义序列 - 匹配码点为0ddd的单个字符。
\N{name} 匹配 符号名 为 name 的单个字符。例如 \N{newline} 匹配单个字符 \n。
也就是说通过在线查询可以得到字符的16进制ASCII码:
http://www.goberl.com/functionAspx/regex.aspx
比如我要匹配的是半角的双引号,那么我输入" 点查询,可以得到如下结果:
按照boost的匹配格式,以成\xdd为例,应该写成:\x22
下面进行必要的测试:
string pattern = "p\\x22(.*?)\\x22d";
最终发现匹配成功! ^ ^
常用正则表达式:
http://www.jb51.net/tools/regex.htm
// 忽略大小写
regex expression( str_pattern , boost::regbase::normal|boost::regbase::icase);
如果要匹配的字符串当中含有双引号
比如: acp"abc"dgg ,在c++当中写法如下:
string aa = "acp\"abc\"dgg";
要提取当中的abc,那么pattern应该怎么写呢?
找规律发现只要这样写就行:
string pattern = "p\"(.*?)\"d";
如果要匹配的字符串当中带有2个空格,acp "abc" dgg , 则可以用 +代替(注意前面有一个空格,加号是重复1次或者多次的意思)
string pattern = "p +\"(.*?)\" +d";
经过网上查询,boost匹配规则,注意这个规则可能和其他的regex库不一样,因为有不同的format限制:
(参考文献:http://blog.csdn.net/sammy_chan/article/details/8440230)
Escapes 转义符:
\cX 一个ASCII转义序列 - 字符码点为 X % 32
\xdd 一个十六进制转义序列 - 匹配码点为0xdd的单个字符。
\x{dddd} 一个十六进制转义序列 - 匹配码点为0xdddd的单个字符。
\0ddd 八进制转义序列 - 匹配码点为0ddd的单个字符。
\N{name} 匹配 符号名 为 name 的单个字符。例如 \N{newline} 匹配单个字符 \n。
也就是说通过在线查询可以得到字符的16进制ASCII码:
http://www.goberl.com/functionAspx/regex.aspx
比如我要匹配的是半角的双引号,那么我输入" 点查询,可以得到如下结果:
输入一个字符 " 十进制ASC码 34 十六进制ASC码 22 八进制ASC码 42 正则表达式匹配 \u0022
按照boost的匹配格式,以成\xdd为例,应该写成:\x22
下面进行必要的测试:
string pattern = "p\\x22(.*?)\\x22d";
最终发现匹配成功! ^ ^
常用正则表达式:
http://www.jb51.net/tools/regex.htm
相关文章推荐
- 收藏:关于正则表达式的的一些经验
- 关于正则表达式的的一些经验
- C++正则表达式处理Boost库使用
- 一些常用的正则表达式
- Qt的一些限制正则表达式
- 收集一些常用的正则表达式
- c++中的正则表达式
- 正则表达式的一些字符
- C++常用正则表达式匹配
- 常用的一些正则表达式
- 一些常用的正则表达式(JS)
- 一些有用的C#正则表达式
- 一些常用的正则表达式
- 对C#中正则表达式的一些解读和总结
- iOS 【一些常用的正则表达式汇总】
- C++正则表达式
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 收集一些常用的正则表达式(匹配中文字符、匹配双字节字符、匹配HTML标记、匹配空行 and so on~~~)
- C++ - 正则表达式 的 子表达式(subexpressions) 的 数据验证(data validation)
- 正则表达式的一些验证