正则表达式之我见—元字符
正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。
所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。
元字符是一个或一组代替一个或多个字符的字符。听起来有点拗口,但举一个例子也许你就明白了:
元字符*用来匹配0个或多个的前一字符;
而元字符 . 用来匹配一个任意的一个字符。好比数学中的通式。
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\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?)