理解正则表达式的匹配关系

Posted dingbj

tags:

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

 

疑问: 

正则表达式所表示的字符串是属于目标字符串的子串,还是目标字符串属于正则表达式所表示的字符串之一?

 

这一点经常容易搞混!!

 

下面是自己的理解,记录在这里,也帮助自己理清这个关系:

 正则表达式是含有元字符或元字符序列的特殊字符串,这些元字符或元字符序列有不同的含义,因此正则表达式表示了某一类字符串,

特殊情况下,正则表达式不包含元字符,那么正则表达式就是一个普通的字符串。

 

正则表达式“匹配”一个字符串,这个匹配有两层意思,第一个是指它是一个操作符,而操作数是正则表达式和目标字符串,就像shell等语言中的‘re‘=~‘string‘;

第二层意思是找到的意思,是指在要匹配的目标字符串中(可能在不同的位置,具体由^$等定位元字符确定)找到了该正则表达式所表示的所有符串中的一个,而找到的那部分

就是匹配的内容,这要么是整个目标字符串,要么是目标字符串的子串。

 

一句话:在目标字符串中查找正则表达式可能表示的字符串,如果找到,则通常说字符串匹配该正则表达式,而实际的意思是字符串能被该正则表达式匹配。

 

技术图片

 

以上是关于理解正则表达式的匹配关系的主要内容,如果未能解决你的问题,请参考以下文章

简单理解正则表达式

对正则表达式的简单理解

对于正则表达式的理解

正则表达式匹配规则

正则表达式中的断言(assertions)

python正则表达式re