正则表达式是验证输入、从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式;
       Qt 提供了一个QRegExp类,它实现了Perl风格的扩展正则表达式语言的大部分功能:
    正则表达式是一个字符的序列;
1):特殊字符
  • . (匹配任何字符)
  • \n (匹配换行符)
  • \f (匹配换页符)
  • \xhhhh(匹配一个unicode字符,其对应的码值是范围0x0000到0xFFFF之间的一个十六进制数hhhh)
2)量词:
  • + (出现1此或者更多次)
  • ?(出现0次 或者 1 次)
  • * (出现0次 或者 更多次)
  • {i,j} (出现至少i次 但是不超过j次)
3)字符集  ---- 在匹配表达式指定位置允许出现的字符集合,其中还预定义了几个字符集合:
  • \s (匹配任何 空白字符)
  • \S (匹配任何 非空白字符)
  • \d (匹配任何 数字字符: 从‘0’ 到 ‘9’ )
  • \D (匹配任何 非数字字符)
  • \w (匹配任何"单词"字符,也就是任意的字母、数字或者下划线)
  • \W (匹配任意的非单词字符)
字符集也可以使用方括号指定:
  • [ABCES] (匹配这五个字符中的任意一个)
  • [a-g]   (匹配a-g中任意一个字符)
  • [^xyz]  (匹配任何除这三个字符以外的字符)
4)分组 和捕获字符 --- () 可以用来把字符划分成组的特殊字符,字符组可以是向后引用的。也就是说,如果存在一个匹配,那么分组了的值可以通过各种方式捕获和访问;
   一般一个正则表达式最多可以引用9个分组,即\1到\9这样的修饰;
 此外还有一个QRegExp成员函数cap(int nth),它返回第n个分组(基于QString的形式返回).
 
5)锚点字符 --- 确定尝试进行匹配操作的边界
  •   脱字符(^)   如果是正则表达式中的第一个字符,则说明匹配过程从字符串的开头处开始,
  • 美元符($)  如果是正则表达式中最后一个字符,则表明匹配过程直到字符串的结尾才会结束;
  • 单词边界 \b      非单词边界\B
 
 
 
 
例子:
c*at    c出现零次或者多次,at紧跟其后;例如 at,cat,ccat等;
c?at    c出现零次或者1次,之后紧跟着at:仅at或者 at;
c.t     c之后紧跟任意字符,其后面又紧跟t的字符匹配,例如cat,cot等等;
c.*t    字符c后边紧跟0个或者多个任意字符,然后紧跟t,例如 ct,caaatt, casdasdt等等
ca+t    '+'意味着前面的字符可以出现一次或者多次,因此符合条件的有cat,caat,caaat等等
c\.\*t  反斜线在特殊字符之前将会"使其转义",因此,只有字符串"c.*t"才能匹配;;
c\\\.t  只和字符串"\c.t"匹配;
c[0-9a-c]+z  c 与 z 之间可以出现[]中的任意字符,+ 表示出现1+ 最少1次
the (cat | dog) ate (fish|mouse) (轮流交替)匹配的结果是 四次;; 不断变换 the cat ate fish ;
                   the dog ate mouse; --------
\w+        字母数字(单词字符)的序列,与【a-zA-Z0-9】+等价
\W         非单词字符(标点符号/空白符号等)
\s{5}      正好5个空白字符(制表符,空白符或者换行符)
^\s+       匹配字符串开头处的一个或者多个空白字符
\s+$       匹配字符串结尾处的一个或者多个空白字符
^Help      如果Help出现在字符串的开头,就匹配它;
[^Help]    与字符串中任意地方(和元字符^的意思不一样)的除单词Help中任一字母之外的任何单个字符相匹配
\S{1,5}    至少1个、至多5个非空白字符(可打印的字符)
\d         一个数字[0-9](\D是一个非数字,也就是[^-0-9])
\d{3}-\d{4}7位电话号码: 3位-四位
\bm{A-Z}\w+ \b代表单词边界:mBuffer匹配而StreamBuffer不匹配;

Qt:正则表达式语法:的更多相关文章

  1. 【转】详解Java正则表达式语法

    (转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...

  2. C#正则表达式语法规则详解

    正则表达式通常包含字母文本(Literaltext)和元字符(metacharacter) 字母文本指的是普通文本如"abcde"可匹配字符串中任何包含"abcde&qu ...

  3. java正则表达式语法详解及其使用代码实例

    原文地址 译者序(下载代码) 正则表达式善于处理文本,对匹配.搜索和替换等操作都有意想不到的作用.正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率. ...

  4. JAVA正则表达式语法大全

    [正则表达式]文本框输入内容控制 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n ...

  5. PHP 正则表达式语法

    则表达式简介 在某些应用中,往往有时候需要根据一定的规则来匹配(查找)确认一些字符串,如要求用户输入的 QQ 号码为数字且至少 5 位.用于描述这些规则的工具就是正则表达式. 最简单的匹配 最简单的匹 ...

  6. QT正则表达式---针对IP地址

    判断合法IP的QT正则表达式: bool IsIPaddress(QString ip) { QRegExp rx2("(//d+)(//.)(//d+)(//.)(//d+)(//.)(/ ...

  7. QT正则表达式

    QT正则表达式有一个问题,当初始状态是不符合正则表达式时,能够输入任意字符,若在输入过程中符合正则表达式,马上进入字符检测状态,即只能接受符合正则表达式的字符.

  8. Java Script正则表达式语法学习

    今天在做页面交互验证时,在HTML里面第一反应居然用了Java 处理正则表达式的语法... ---------------------------------题记 学习来源 http://www.ru ...

  9. (转)JAVA正则表达式语法大全

    [正则表达式]文本框输入内容控制 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n ...

  10. Delphi 正则表达式语法(10): 选项

    Delphi 正则表达式语法(10): 选项 // preCaseLess: 不区分大小写, 相当于其他语言中的 i var   reg: TPerlRegEx; begin   reg := TPe ...

随机推荐

  1. c语言游戏推箱子

    前两天做了推箱子小游戏,看似简单的一个小游戏背后却 有巨大的秘密,这秘密就是一大堆逻辑. 自从学习了函数过后,的确是解决了很多问题,而且调用很方便,尽管我现在都不是很会调用. 写完一个函数,准备测试一 ...

  2. 可能是史上最强大的js图表库——ECharts带你入门

    PS:之前的那篇博客Highcharts——让你的网页上图表画的飞起 ,评论中,花儿笑弯了腰 和 StanZhai 两位仁兄让我试试 ECharts ,去主页看到<Why ECharts ?&g ...

  3. Spring WebService 和 搜索

    参考文章: http://blog.csdn.net/kkdelta/article/details/7290769 云计算中主流的Web服务有两种: 1.WebService.内容比较沉重,技术人员 ...

  4. [CareerCup] 5.7 Find Missing Integer 查找丢失的数

    5.7 An array A contains all the integers from 0 to n, except for one number which is missing. In thi ...

  5. 如何设置ASP.NET页面的运行超时时间

    全局超时时间 服务器上如果有多个网站,希望统一设置一下超时时间,则需要设置 Machine.config 文件中的 ExecutionTimeout 属性值.Machine.config 文件位于 % ...

  6. Swagger+AutoRest 生成web api客户端(.Net)

    简介 对于.net来说,用web api来构建服务是一个不错的选择,都是http请求,调用简单,但是如果真的要在程序中调用,则还有些工作要做,比如我们需要手写httpClient调用,并映射Model ...

  7. Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案(转)

      前言 刚开始创建MVC与Web API的混合项目时,碰到好多问题,今天拿出来跟大家一起分享下.有朋友私信我问项目的分层及文件夹结构在我的第一篇博客中没说清楚,那么接下来我就准备从这些文件怎么分文件 ...

  8. [Bundling and Minification ] 四、总结

    一.ASP.NET MVC 里面提供了一个默认的绑定集合BundleTable.Bundles 位于System.Web.Optimization下的静态类BundleTable中的一个静态变量.以下 ...

  9. Sunny-ngrok 解决外网访问内网问题

       该博文已过时    请参考官网        http://www.ngrok.cc/ 一  .进入 网址 往下拉找到: 下载不同的版本. 二. 平台登陆地址:http://www.ngrok. ...

  10. Oracle11g字符集AL32UTF8修改为ZHS16GBK详解【转】

    ------感谢作者,确实解决了问题.分享下,希望帮到更多人 此问题发生在数据库迁移过程中.源数据库:自己笔记本上win7 64位系统的oracle11g个人版,字符集ZHS16GBK :目标数据库, ...