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


疑问: 

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

这一点经常容易搞混!!

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

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

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

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

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

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

相关