跳至主要內容

Qt

LincZero大约 1 分钟

Qt

目录

正则表达式

QRegExp

Qt的QRegExp类是正则表达式的表示类,基于Perl的正则表达式语言,完全支持Unicode

  • 组成:正则表达式由三部分组成

    • 表达式(expressions
    • 量词(quantifiers
    • 断言(assertions
  • 表达式

    • 最简单的表达式是一个字符
    • 字符集举例
      • [AEIOU]表示匹配所有的大写元音字母
      • [^AEIOU]表示匹配所有非元音字母,即辅音字母
      • [a-z]表示匹配所有的小写英文字母
  • 量词

    • 说明表达式出现的次数

    • 举例

      • x[1,2]表示x为1或2个
      • [A-Za-z_]+[A-Za-z_0-9]*匹配计算机语言的标识符
    • 正则表达式的量词(E是表达式的意思)(这里的方括号好像要变成花括号才对,不知道为什么书上的是方括号

      量词含义
      E?匹配0次或1次,等同E[0,1]
      E+匹配1次或多次,等同E[1,]
      E*匹配0次或多次,等同E[0,]
      E[n]匹配n次
      E[n,]匹配至少n次
      E[,m]匹配最多m次,等同E[0,m]
      E[n,m]匹配n次到m次
  • 断言

    • 举例

      • using(?=E\s+namespace),匹配后面接 namespace 的 using
      • using(?!E\s+namespace),匹配后面不接 namespace 的 using
      • using\s+namespace,匹配 using namespace
    • 正则表达式的断言

      符号含义
      ^字符串开头进行匹配
      $字符串结尾进行匹配
      \b单词边界
      \B非单词边界
      (?=E)表达式后紧随E才匹配
      (?!E)表达式后不跟随E才匹配