正则表达式之我见—元字符

时间:2020-12-15 18:50:56

正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。

所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。

元字符是一个或一组代替一个或多个字符的字符。听起来有点拗口,但举一个例子也许你就明白了:

元字符*用来匹配0个或多个的前一字符;

而元字符 . 用来匹配一个任意的一个字符。好比数学中的通式。

表1.常用的元字符
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

上面的表1是常用的元字符代码及说明,下面我们根据这些说明及对应的代码来做一些练习。

1.1 .  匹配除换行符以外的任意字符

正则表达式之我见—元字符

匹配的结果有2个空白一个是空格一个是换行。这里需要特别说明的是换行符\n而不是换行。

1.2 \w 匹配字母或数字或下划线或汉字

正则表达式之我见—元字符

我特意打了一个空格和#号还顺便换了行,结果还真的只匹配字母或数字或下划线或汉字...……

1.3 \s 匹配任意的空白符

正则表达式之我见—元字符

蓝色区域是空格及结果,右边结果栏的两个空白是换行。如果光标回到b的后面则没有这两个空格。同时,字母a和b也没有识别。

1.4 \d 匹配数字

 正则表达式之我见—元字符

我打了字母和感叹号以及空格,它只是别了1。

1.5 \b 匹配单词的开始或结束

这里有几种情况需要分别说一下:

1.当我没有在\b后面指定规则的时候,随便我写一个什么样的源文本,在结果中都会有两个空格,表示 一前一后。

正则表达式之我见—元字符

2.当我改成\ba的时候,表示匹配以a开头的字符。此时变成

正则表达式之我见—元字符

3.当我改成a\b的时候,表示匹配以a结尾的字符。此时变成

正则表达式之我见—元字符

1.6 ^ 匹配字符串的开始

 

1.7 $ 匹配字符串的结束

 

混合应用,算是作业,自己分析下吧!

QQ:[1-9]\d{4,}

IP:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)