10分钟教会你正则表达式

一个正则表达式,是一个字符,或者是一个字符集的缩写,或者是用方括号抱起来的一些字符的集合,或用圆括号括起来的表达式。

[A-Z] 匹配A-Z之间的字符

x{1,1} 只匹配一次x

x{1,5} 匹配至少1次,至多5次x

[0-9]{1, 1} 只匹配一个数字

[0-9]{1, 2} 匹配0-99

如果需要匹配整个字符串,就需要借助^和$:

当^在正则表达式的开头时,表示正则表达式从整个字符串的开头进行匹配

当$在正则表达式的结尾时,表示正则表达式匹配到整个字符串的截尾

1{1,2}$ 匹配整个字符串,且只有0-99的数字字符

[0-9] 等同于 \d

x{1, 1} 等同于 x

2{1, 2}$ 等同于 ^\d{1, 2}$ 等同于 ^\d\d{0, 1}$ 等同于 ^\d\d?$

? 表示{0, 1},发生0次或一次

|表示或

mail|letter|correspondence 匹配mail或letter或correspondence,但不考虑字符串的边界,即email也是符合条件的

\b(mail|letter|correspondence)\b 匹配mail或letter或correspondence,并且考虑字符串的边界,email将不符合条件

\xhhhh:匹配Unicode字符,表示16进制的0x0000到0xFFFF

. :匹配任意字符(包括newline)

\d:匹配一个数字(QChar::isDigit()).

\D:匹配一个非数字字符

\s:匹配一个空格字符(QChar::isSpace()).

\S:匹配一个非空格字符

\w:匹配一个单词字符 (QChar::isLetterOrNumber(), QChar::isMark(), or ‘_’).

\W:匹配非单词字符

\n:第那个发现引用,例如\1,\2等

注意: C++编译器会对字符串中的反斜杠进行转义,如果正则表达式中包含\,那么请输入2次。如果在正则表达式中,要匹配字符串中的\,请输入4次反斜杠,例如\\

当^出现中括号中,表示除之外

[abc]:匹配a或b或c

[^abc]:匹配除了a、b、c以外的任意字符

当-出现在中括号中,表示一个字符序列

[W-Z]:表示W、X、Y、Z

使用预定义的字符集缩写比使用跨平台和语言的字符范围更便于移植。例如,[0-9]匹配西方字母表中的数字,而\d匹配任何字母表中的数字。

数量(计数)

E?:字符E出现0次或1次

E+:字符E出现至少1次,等同于E{1,}

E*:字符E出现0次或更多次,等同于E{0,},注意:使用\s+KaTeX parse error: Undefined control sequence: \s at position 14: 匹配空格截尾的字符串,而非\̲s̲*

E{n}:字符E出现n次,等同于E{n,n}

E{n,}:字符E至少出现n次

E{,m}:字符E至多出现m次,等同于E{0,m}

E{n,m}:字符E至少出现n次,至多出现m次

捕获使用:()

不捕获使用:(?:开始,)结束

下面是一个捕获的实例:

// In the following example we match strings containing 'mail' or 'letter'
// or 'correspondence' but only match whole words i.e. not 'email'
 
QRegExp rx("\\b(mail|letter|correspondence)\\b");
rx.indexIn("I sent you an email");     // returns -1 (no match)
rx.indexIn("Please write the letter"); // returns 17

  1. 0-9 ↩︎

  2. 0-9 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。《精通正则表达式(第3版)》是讲解正则表达式的经典之作。《精通正则表达式(第3版)》主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了在Perl、Java、.NET、PHP中正则表达式的用法。 《精通正则表达式(第3版)》自第1版开始着力于教会读者 "以正则表达式来思考",来让读者真"精通"正则表达式。该版对PHP的相关内容、Java1.5和Java1.6的新特性作了可观的扩充讲解。任何有机会使用正则表达式的读者都将因《精通正则表达式(第3版)》而受益匪浅。 《精通正则表达式(第3版)》讲解正则表达式,这种工具能够提高工作效率、让生活变得更轻松。精心调校后的正则表达式只需要十多秒就能完成以前数小时才能完成的枯燥任务。如今,正则表达式已经成为众多语言及工具--Perl、PHP、Java、Python、Ruby、MysQL、VB-NET和c#(以及.NETFramework中的任何语言)--中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本处理。十年三版,再显王者风范,近30年开发经验的智慧结晶,深入理解正则表达式,彻底修炼基本功,全球第一本全面深入讲解正则表达式的经典巨著,《程序员》杂志技术主编孟岩鼎力推荐。 专家点评:《精通正则表达式》是系统学习正则表达式的唯一最权威著作。任何时候,任何地方,只要提到正则表达式著作,人们都会提到这本书。该书质量之高,声誉之盛,使得几乎没有人企图挑战它的地位,从而在正则表达式图书领域形成了独特的"一夫当关"的局面,称其为正则表达式圣经,绝对当之无愧。 --《程序员》杂志技术主编孟岩 《精通正则表达式(第3版)》包含了对PHP及其正则表达式的讲解。这一版的更新也反映了其他语言的发展,深入讲解了Sun的java.util.regex,并特别提到了Java1.4.2和Java1.5/1.6之间的众多差异。 本书的内容: ·各种语言和工具的功能比较 ·则引擎的工作原理 ·优化(能节省大量的时间) ·准确匹配期望的文本 ·针对具体语言的章节 《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值