加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

QRegExp一些注意事项(正则表达式和模式匹配)

发布时间:2020-12-14 04:22:46 所属栏目:百科 来源:网络整理
导读:某些字符代表的非本身意义(即有特殊意义):如:^、-、*等,要表示本身意义时,需要在前面加""。 某些字符代表其本身意义,但是加上""后有特殊意义,如:n、r、t、v、a、f等。 qt本身为c++语言,在c++中""用来escape(转义),表示其本身是需要转义
  1. 某些字符代表的非本身意义(即有特殊意义):如:^、-、*等,要表示本身意义时,需要在前面加""。
  2. 某些字符代表其本身意义,但是加上""后有特殊意义,如:n、r、t、v、a、f等。
  3. qt本身为c++语言,在c++中""用来escape(转义),表示其本身是需要转义的,故在一个正则表达式中包含“”需要在“”。(提示:因为c++有定义自己的转义序列,当和qt的相同时只用"",比如第二条提到的那六个,但是为了方便,都用"")
  4. c++中以""开头,后面紧跟1个、2个或者3个数字表示的是八进制数,而在QRegExp中""开头才是表示八进制数。QRegExp中"i"表示反向引用,即与前面的第i个分组完全相同。如:b(w+)s+1b,其中1就是和w+的匹配东西完全相同, 故匹配的字符串可以是go go或者litter litter等。
  5. 可以用()来分割成各个组,QRegExp的cap()函数默认是会捕捉各个小组,若是()不想被捕捉,即可用(?:表达式)格式。
  6. "^"表达式表示以该表达式开头,如^#include就是以#include开头。但是当[^abc]表匹配除了a、b、c字符外所有的字符。(有点特殊)
  7. 小写为肯定,大写为否定。如:d表示数字,D则表示非数字。
  8. exactMatch("表达式")函数匹配相当于indexIn("^表达式$")。
  9. PatternSyntax(模式语法)格式QRegExp::Wildcard与QRegExp::RegExp有些区别。通配符只有c、?、*、[...]。"c"就是代表本身意义,两者相同。Wildcard的"?"和RegExp的"."相同。Wildcard的"*"和RegExp的".*"相同。Wildcard的"[...]"中基本没有特殊意义的字符,就是代表其本身意义,而RegExp的"[...]"字符及其集缩写和("^"、"-")可以代表其特殊意义。
  10. 断言只用作判断用而不会匹配任何字符,如:bOKb,匹配字符串i am OK 会得到OK。字符串中不需要有b。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读