理解正则表达式的匹配关系
疑问:
正则表达式所表示的字符串是属于目标字符串的子串,还是目标字符串属于正则表达式所表示的字符串之一?
这一点经常容易搞混!!
下面是自己的理解,记录在这里,也帮助自己理清这个关系:
正则表达式是含有元字符或元字符序列的特殊字符串,这些元字符或元字符序列有不同的含义,因此正则表达式表示了某一类字符串,
特殊情况下,正则表达式不包含元字符,那么正则表达式就是一个普通的字符串。
正则表达式“匹配”一个字符串,这个匹配有两层意思,第一个是指它是一个操作符,而操作数是正则表达式和目标字符串,就像shell等语言中的‘re‘=~‘string';
第二层意思是找到的意思,是指在要匹配的目标字符串中(可能在不同的位置,具体由^$\b等定位元字符确定)找到了该正则表达式所表示的所有符串中的一个,而找到的那部分就是匹配的内容,这要么是整个目标字符串,要么是目标字符串的子串。
一句话:在目标字符串中查找正则表达式可能表示的字符串,如果找到,则通常说字符串匹配该正则表达式,而实际的意思是字符串能被该正则表达式匹配。