C++11正则表达式 ECMAScript文法
突然想写个爬虫,然后发现,如果有正则表达式,会方便些。 C++11提供了Regex类.可以用来完成: 1.Match: 将整个输入拿来比对(匹配)某个正则表达式。 2.Search:查找“与正则表达式吻合”的子序列。 3.Tokenize:正则表达式作为分割器,得到分割器之前的字符串。 4.Replace:将与正则表达式吻合之的子序列替换掉 主要函数有: regex_match(),regex_search(),regex_replace(); 主要对象:sregex_iterator,sregex_token_iterator,regex,smatch 例子: [_[:alpha:]][_[:alnum:]]* 表示,以_或字母开头,后面接着任意个_或字母的组合 [123]?[0-9]\.1?[0-9]\.20[0-9]{2} 表示german format,如 24.12.2010 C++11默认使用 ECMAScript 文法,告诉你怎么构造正则表达式 表示式 意义 . newline以外的任何字符 [...] ...字符中的任何一个 [^...] ...字符之外的任何一个 [ [:charclass:]] 指定字符串类charclass中的一个(见下表) \n,\t,\f,\r,\v 一个newline,tabulator,form feed,carriage return