<!-- [if gte mso 10]>
<mce:style><!
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
table.MsoTableGrid
{mso-style-name:网格型;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-priority:59;
mso-style-unhide:no;
border:solid black 1.0pt;
mso-border-themecolor:text1;
mso-border-alt:solid black .5pt;
mso-border-themecolor:text1;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-border-insideh:.5pt solid black;
mso-border-insideh-themecolor:text1;
mso-border-insidev:.5pt solid black;
mso-border-insidev-themecolor:text1;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
-->
下面列举了一些常用的正则表达式,仅仅是为了方便记忆和查找:
1.
首先是元字符
,究竟什么是元字符呢?大家就把它理解成是正则表达式的关键字吧,它代表的不是符号本身。
例如:
0/d{2,3}-/d{7,8}
表示电话号码,前面以
0
开头的
3
到
4
位数字,中间是
-
,后面
7
到
8
位数字
.
这里面
0
代表的就是数字
0
,而
/d
是元字符代表的是一位数字,
-
代表的也是本身。
常用的元字符如下表:
字符
|
说明
|
.
|
除了换行外的任意的字符
|
/b
|
单词的开始或结束(是一个位置)
|
/d
|
一个数字
|
/w
|
匹配字母、数字、下划线、汉字
|
/s
|
匹配空白符号
|
^
|
字符串的开始
|
$
|
字符串的结束
|
2.
转义字符
/
既然想
.
本身是不代表
.
的那么我要是想匹配
.
怎么办?那就要用到转义字符
/
例如
/.
就匹配
.
3.
重复
如果说你想匹配连续
5
个数字怎么办,写五个
/d
太麻烦了吧,事实上我们肯定不会那么做?我们可以使用
/d{5}.
常用的表重复的符号如下表:
字符
|
说明
|
*
|
重复
0
到多次
|
+
|
重复
1
到多次
|
?
|
重复零次或一次
|
{n}
|
重复
n
次
|
{n,
|
重复
n
到多次
|
{n,m}
|
重复
n
到
m
次
|
4.
字符类
[]
如何表示
abcd
中的任何一个呢,可以用:
[abcd]
表示任意一个,不仅可以这样还可以用类似
[0-9]
表示
0
到
9
直接的任意的数字。
5.
分支条件
|
如果你要表示固定电话或者手机号码,因为固定电话是
0/d{3,4}-/d{7,8}
而手机号码是
/d{13}
。怎么办,这是可以用分支
0/d{3,4}-/d{7,8}|/d{13}
。用
|
分开,表示要么匹配前面类型要么匹配后面类型。
6.
分组
()
上面说过重复一个字符
0
次、一次或多次,那么如何重复多个字符呢,就是我们要说的分组,例如要匹配一段
IP
地址
(
简单的
IP
匹配
)
:
(/d{1,3}/.){3}/d{1,3}.
其中()括起来的部分重复
3
次。
7.
反义
上面说过匹配数字
/d,
那么如果想要匹配除了数字意外的字符呢?你可以使用
/D.
这就是要说的反义。
常用的反义:
字符
|
说明
|
/B
|
匹配不是单词的开始或结束位置
|
/D
|
不是数字的字符
|
/W
|
除字母、数字、汉字、下划线意外的字符
|
/S
|
不是空白字符的字符
|
[^x]
|
除了
x
以外的字符
|
[^abcd]
|
除了
abcd
以外的字符
|
8.
断言
如果我们匹配一个以
ch
结尾的单词的前半部分怎么办?可以:
/b/w+(?=ch/b).
这个断言是出现在自身的后面叫零宽度正预测先行断言。要是匹配以
wr
开头单词的后半部分就可以是:(?
=/bwr
)
/w+/b,
这个叫零宽度正回顾后发断言。如果仅仅就是确保没有出现而不用去匹配,例如
/d{5}(?!/d)
就是匹配
5
个数字而且其后面不能再是数字,这种叫零宽度负预测先行断言;同样还有零宽度负回顾后发断言,例如
(?<![a-z])/d
前面不是小写字母的一个数字。
9.
懒惰限定符
?
如果有
a.*b
正则表达式,有字符
accccbccb
去匹配,达到的是
accccbccb
还是
accccb
呢?答案是前者,会找最长的。但是有时我们不希望这样,就可以使用懒惰限定符。比如上面的正则表达式可以这样
a.*?b
就可以解决问题了。
常用的有
字符
|
说明
|
*?
|
重复
0
到多次,但尽可能少的重复
|
+?
|
重复
1
到多次,但尽可能少的重复
|
??
|
重复
0
到一次,但尽可能少的重复
|
{n,m}?
|
重复
n
到
m
次,但尽可能少的重复
|
{n}?
|
重复
n
到多次,但尽可能少的重复
|
分享到:
相关推荐
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...
正则表达式验证工具 V1.0 本软件主要用于检测正则表达式是否正确。 运行环境:本软件为绿色软件,无需安装,但需要Microsoft .NET Framework 4 支持,如果没有请前去下载(下载路径:...
《学习正则表达式》从正则表达式的基本概念讲起,到编写完整的sed和Perl脚本,再到转换HTML文件,将这种强大的工具解释得清晰透彻。...《学习正则表达式》适合对正则表达式感兴趣的程序员和互联网从业者。
正物色一本学习正则表达式的入门图书?恭喜,《学习正则表达式》非常适合你!本书提供大量经典简洁的示例,从零开始教你逐步掌握正则表达式。通过匹配特定单词、字符和模式,读者很快就可以自己动手使用正则表达式...
正则表达式正则表达式正则表达式正则表达式 验证程序
《正则表达式经典实例》讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报...
让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel 正则工具」顾名思义,需要使用 “正则表达式(PCRE)” 的知识来进行操作,对于完全没有接触过正则的朋友也许有一定的入门门槛,但正则实在是太过强大...
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 许多程序设计语言都支持利用...
正则表达式整理汇总,含以下内容 [1]里面在包括一个正则表达式测试小程序 RegexTester.exe [2]正则表达式30分钟入门教程.pdf] [3]正则表达式规则.doc [4]正则表达式30分钟入门教程.mht 自己整理用的,现在...
常用正则表达式 正则表达式 常用正则表达式 正则表达式
常用正则表达式大全: 匹配中文字符的正则表达式 匹配空白行的正则表达式 匹配HTML标记的正则表达式 匹配Email地址的正则表达式 匹配网址URL的正则表达式 匹配国内电话号 匹配中国邮政编码 匹配身份证 匹配ip地址 ...
java,正则表达式,详解,java正则表达式,PDF
Microsoft®.NET Framework 对正则表达式的支持是一流的,甚至在 Microsoft® ASP.NET 中也有依赖正则表达式语言的控件。本文介绍了深入学习正则表达式的基础知识和推荐内容。 本文主要面向对正则表达式知之甚少或...
Java正则表达式Java正则表达式Java正则表达式Java正则表达式
正则表达式日期校验 正则表达式日期校验 正则表达式日期校验
C语言正则表达式库,兼容perl的正则表达式库,使用简介、方便
非常棒的正则表达式速成教程,号称30分钟叫你学会正则表达式常用用法。我本人学了一下,感觉不赖,不过俺比较笨,30分钟的东西学了3个多小时,已经从什么都不会变成会编各种复杂的正则筛选条件了^^!这个教程是配合...
UE正则表达式、UE正则表达式
日期正则表达式(很实用) 日期正则表达式(很实用)日期正则表达式(很实用)日期正则表达式(很实用)
正则表达式汇总