QRegExp一些注意事项(正则表达式和模式匹配)
2016-06-17 16:35
357 查看
某些字符代表的非本身意义(即有特殊意义):如:^、-、*等,要表示本身意义时,需要在前面加"\"。
某些字符代表其本身意义,但是加上"\"后有特殊意义,如:\n、\r、\t、\v、\a、\f等。
qt本身为c++语言,在c++中"\"用来escape(转义),表示其本身是需要转义的,故在一个正则表达式中包含“\”需要在“\\”。(提示:因为c++有定义自己的转义序列,当和qt的相同时只用"\",比如第二条提到的那六个,但是为了方便,都用"\\")
c++中以"\"开头,后面紧跟1个、2个或者3个数字表示的是八进制数,而在QRegExp中"\0"开头才是表示八进制数。QRegExp中"\i"表示反向引用,即与前面的第i个分组完全相同。如:\\b(\\w+)\\s+\\1\\b,其中\\1就是和\\w+的匹配东西完全相同, 故匹配的字符串可以是go go或者litter litter等。
可以用()来分割成各个组,QRegExp的cap()函数默认是会捕捉各个小组,若是()不想被捕捉,即可用(?:表达式)格式。
"^"表达式表示以该表达式开头,如^#include就是以#include开头。但是当[^abc]表匹配除了a、b、c字符外所有的字符。(有点特殊)
小写为肯定,大写为否定。如:\d表示数字,\D则表示非数字。
exactMatch("表达式")函数匹配相当于indexIn("^表达式$")。
PatternSyntax(模式语法)格式QRegExp::Wildcard与QRegExp::RegExp有些区别。通配符只有c、?、*、[...]。"c"就是代表本身意义,两者相同。Wildcard的"?"和RegExp的"."相同。Wildcard的"*"和RegExp的".*"相同。Wildcard的"[...]"中基本没有特殊意义的字符,就是代表其本身意义,而RegExp的"[...]"字符及其集缩写和("^"、"-")可以代表其特殊意义。
断言只用作判断用而不会匹配任何字符,如:\\bOK\\b,匹配字符串i am OK 会得到OK。字符串中不需要有\b。
某些字符代表其本身意义,但是加上"\"后有特殊意义,如:\n、\r、\t、\v、\a、\f等。
qt本身为c++语言,在c++中"\"用来escape(转义),表示其本身是需要转义的,故在一个正则表达式中包含“\”需要在“\\”。(提示:因为c++有定义自己的转义序列,当和qt的相同时只用"\",比如第二条提到的那六个,但是为了方便,都用"\\")
c++中以"\"开头,后面紧跟1个、2个或者3个数字表示的是八进制数,而在QRegExp中"\0"开头才是表示八进制数。QRegExp中"\i"表示反向引用,即与前面的第i个分组完全相同。如:\\b(\\w+)\\s+\\1\\b,其中\\1就是和\\w+的匹配东西完全相同, 故匹配的字符串可以是go go或者litter litter等。
可以用()来分割成各个组,QRegExp的cap()函数默认是会捕捉各个小组,若是()不想被捕捉,即可用(?:表达式)格式。
"^"表达式表示以该表达式开头,如^#include就是以#include开头。但是当[^abc]表匹配除了a、b、c字符外所有的字符。(有点特殊)
小写为肯定,大写为否定。如:\d表示数字,\D则表示非数字。
exactMatch("表达式")函数匹配相当于indexIn("^表达式$")。
PatternSyntax(模式语法)格式QRegExp::Wildcard与QRegExp::RegExp有些区别。通配符只有c、?、*、[...]。"c"就是代表本身意义,两者相同。Wildcard的"?"和RegExp的"."相同。Wildcard的"*"和RegExp的".*"相同。Wildcard的"[...]"中基本没有特殊意义的字符,就是代表其本身意义,而RegExp的"[...]"字符及其集缩写和("^"、"-")可以代表其特殊意义。
断言只用作判断用而不会匹配任何字符,如:\\bOK\\b,匹配字符串i am OK 会得到OK。字符串中不需要有\b。
相关文章推荐
- msql 正则表达式
- 正则表达式
- Mootools 1.2教程 正则表达式
- 批处理FINDSTR正则表达式用法实例分析
- vbs正则表达式代码
- C#正则表达式Regex类的常用匹配
- C#中利用正则表达式将人民币金额转换为大写汉字
- C#使用正则表达式实现首字母转大写的方法
- php中看实例学正则表达式
- PHP正则表达式之定界符和原子介绍
- PHP下常用正则表达式整理
- 批处理 正则表达式(findstr) 整理
- 详解C#正则表达式Regex常用匹配
- C#正则表达式的6个简单例子
- JavaScript类型系统之正则表达式
- 详解JS正则replace的使用方法
- javascript中的正则表达式使用指南
- C#中的正则表达式介绍
- 学习正则帮手笨狼正则练习器