正则表达式的语法和使用说明

Posted Aiden郭祥跃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式的语法和使用说明相关的知识,希望对你有一定的参考价值。

正则表达式,又称规则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
 
如何学习正则?1、学习正则表达式的语法规则2、练习使用正则并能解决实际问题。学习正则表达式语法,主要就是学习元字符以及它们在正则表达式上下文中的行为。为了便于理解,文章所有示例的正则表达式用“regex=正则”表示,“=”号后面就是正则表达式,匹配到的字符会用颜色标注出来,连续匹配到的字符用一深一浅两种颜色区分。比如:regex=d+,其中d+就是一个正则,它匹配任意多于1个的数字,如:
 

 

 

 

 

标准字符集合:标准字符集合是能够与“多种普通字符”匹配的简单表达式,比如:d、w、s匹配数字0到9的任意数字可以regex=[0-9]也可以regex=d标准字符集要注意区分大小写,大写是相反的意思regex=D,则匹配非数字字符,即不能匹配数字0到9,如下:

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

限定字符(量词)限定字符又叫量词,是用于表示匹配的字符数量的。匹配任意1位数字可以regex=d匹配任意2位数字可以regex=dd匹配任意3位数字可以regex=ddd匹配任意16位数字,再这么写就有点傻了这里引入用于表示数量限定字符“{n}”“{n}”,n是一个非负整数,匹配确定的n次注意:regex=dd{3}匹配任意4个数字不是6个,量词只对它前面的字符负责,regex=dd{3}匹配的内容如下:

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

下面是一些常用的限定字符说明

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

定位字符(字符边界)

定位字符也叫字符边界,标记匹配的不是字符而是符合某种条件的位置,所以定位字符是“零宽的”。

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

“”匹配这样一个位置:前面的字符和后面的字符不全是w

如果在“hello,hello1 hello hello1 bhello”这个字符串里匹配regex=hello,

匹配到的结果如下:

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

除小数点“.”外,标准字符集合包含在方括号中,仍然表示集合范围。

regex=[d.+]匹配0-9的任意一个数字或者小数点“.”或者加号“+”

也就是说d在自定义集合中仍然表示数字,但是小数点在字符集合中只表示小数点本身,而不是除“ ”之外的任何单个字符

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

括号中的表达式匹配到的内容会存储起来,并可以获取到括号中表达式匹配到的内容3、每一对括号会分配一个编号,使用( )的捕获根据左括号的顺序从1开始自动编号,编号为0的捕获是整个正则表达式匹配到的文本。捕获组( )可以把匹配的内容存储起来,那么如何获取( )捕获到的内容呢,下面介绍反向引用。反向引用“
umber”每一对括号会分配一个编号,使用( )的捕获根据左括号的顺序从1开始自动编号。通过反向引用,可以对分组已捕获的字符串进行引用。“
umber”中的number就是组号regex=(abc)d可以匹配字符串abcdabc,即表示把获取到的第一组再匹配一次,如下:

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

regex=love (?!story)匹配的结果如下(匹配“love ”后面不能是story):

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

如果想匹配“room”或“loom”,请用括号创建子表达式,regex=(r|l)oom,如下:

程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全至此,正则表达式的语法介绍完了。

 

以上是关于正则表达式的语法和使用说明的主要内容,如果未能解决你的问题,请参考以下文章

通过 Java 正则表达式提取 semver 版本字符串的片段

python-正则表达式语法规范与案例

正则表达式理论基础

iOS 正则表达式使用的三种方式&语法

js正则表达式总结

半小时学会正则表达式(上)