正则表达式简单教程二:元字符之字符组、常用字符范围缩写和小数点.
2012-12-13 11:56
567 查看
一、字符组[...]
字符组可以匹配[ ]中包含的任意一个字符。虽然可以是任意一个,但只能是一个。
1、普通字符组:[abcdefg] 表示abcdefg中的任意一个字符
2、用连字符[..-..]来表示一个范围:[a-z]表示所有小写字母,[A-Z]所有大写字母,[0-9]表示所有数字,[a-zA-Z0-9_]表示大小写字母或数字或下划线中的任意一个。当用-表示范围时,要求前面字符的码位(ASCII码位)小于后面的字符的码位。
3、[^…] 排除型字符组。排除型字符组表示任意一个未列出的字符,同样只能是一个。排除型字符组同样支持由连字符“-”来表示一个范围。
举例:
“[0-9][0-9]”在匹配“Windows 2003”时,匹配成功,匹配的结果为“20”。
“[^inW]”在匹配“Windows 2003”时,匹配成功,匹配的结果为“d”。
二、常用字符范围缩写
对于一些常用的字符范围,如数字等,由于非常常用,即使使用[0-9]这样的字符组仍显得麻烦,所以定义了一些元字符,来表示常见的字符范围。
对于一些常用的字符范围,如数字等,由于非常常用,即使使用[0-9]这样的字符组仍显得麻烦,所以定义了一些元字符,来表示常见的字符范围。
在支持ASCII但不支持Unicode的语言中,\w的范围是数字、字母、下划线,如javascript
注:在支持Unicode的语言中,如.NET,默认情况下,“\w”除可以匹配[a-zA-Z0-9_]外,还可以匹配一些Unicode字符集,如汉字,全角数字等等。
虽然PHP支持unicode,但在PHP中,\w只表示数字、字母、下划线,不能表示汉字
三、小数点.
小数点可以匹配除“\n”以外的任意一个字符。如果要匹配包括“\n”在内的所有字符,一般用[\s\S],或者是用“.”加(?s)匹配模式来实现。
小数点可以匹配除了换行符“\n”以外的任意一个字符
各编程语言对于小数点匹配的不同:
(1)PHP、Java、.Net都是匹配除换行符以外的任意字符
(2)JavaScript:由于各浏览器的解析引擎不同,“.”的匹配范围也有所不同,对于Trident内核的浏览器,如IE来说,“.”同样是匹配除了换行符“\n”以外的任意一个字符,但是对于其它内核的浏览器,如Firefox、Opera、Chrome来说,“.”是匹配除了回车符“\r”和换行符“\n”以外的任意一个字符。
[align=center] [/align]
字符组可以匹配[ ]中包含的任意一个字符。虽然可以是任意一个,但只能是一个。
1、普通字符组:[abcdefg] 表示abcdefg中的任意一个字符
2、用连字符[..-..]来表示一个范围:[a-z]表示所有小写字母,[A-Z]所有大写字母,[0-9]表示所有数字,[a-zA-Z0-9_]表示大小写字母或数字或下划线中的任意一个。当用-表示范围时,要求前面字符的码位(ASCII码位)小于后面的字符的码位。
3、[^…] 排除型字符组。排除型字符组表示任意一个未列出的字符,同样只能是一个。排除型字符组同样支持由连字符“-”来表示一个范围。
表达式 | 说明 |
[abc] | 表示“a”或“b”或“c” |
[0-9] | 表示0~9中任意一个数字,等价于[0123456789] |
[\u4e00-\u9fa5] | 表示任意一个汉字 |
[^a1<] | 表示除“a”、“1”、“<”外的其它任意一个字符 |
[^a-z] | 表示除小写字母外的任意一个字符 |
“[0-9][0-9]”在匹配“Windows 2003”时,匹配成功,匹配的结果为“20”。
“[^inW]”在匹配“Windows 2003”时,匹配成功,匹配的结果为“d”。
二、常用字符范围缩写
对于一些常用的字符范围,如数字等,由于非常常用,即使使用[0-9]这样的字符组仍显得麻烦,所以定义了一些元字符,来表示常见的字符范围。
对于一些常用的字符范围,如数字等,由于非常常用,即使使用[0-9]这样的字符组仍显得麻烦,所以定义了一些元字符,来表示常见的字符范围。
表达式 | 说明 |
\d | 任意一个数字,相当于[0-9],即0~9 中的任意一个 |
\w | 任意一个字母或数字或下划线,相当于[a-zA-Z0-9_] |
\s | 任意空白字符,相当于[ \r\n\f\t\v] |
\D | 任意一个非数字字符,\d取反,相当于[^0-9] |
\W | \w取反,相当于[^a-zA-Z0-9_] |
\S | 任意非空白字符,\s取反,相当于[^ \r\n\f\t\v] |
在支持ASCII但不支持Unicode的语言中,\w的范围是数字、字母、下划线,如javascript
<script type="text/javascript"> var str = '123_abc中国汉字efg'; var pattern = /\w+/g; var arr = str.match(pattern); typeof(arr); if(arr != null){ for(i=0;i<arr.length;i++) { document.write(arr[i]+'<br/>'); } } </script> //输出: 123_abc efg
注:在支持Unicode的语言中,如.NET,默认情况下,“\w”除可以匹配[a-zA-Z0-9_]外,还可以匹配一些Unicode字符集,如汉字,全角数字等等。
虽然PHP支持unicode,但在PHP中,\w只表示数字、字母、下划线,不能表示汉字
$pattern = '#\w+#'; if(preg_match($pattern, 'abc_123端口网', $match)) { var_dump($match); } //运行结果:abc_123(不能匹配中文)
三、小数点.
小数点可以匹配除“\n”以外的任意一个字符。如果要匹配包括“\n”在内的所有字符,一般用[\s\S],或者是用“.”加(?s)匹配模式来实现。
表达式 | 说明 |
. | 匹配除了换行符 \n 以外的任意一个字符 |
各编程语言对于小数点匹配的不同:
(1)PHP、Java、.Net都是匹配除换行符以外的任意字符
(2)JavaScript:由于各浏览器的解析引擎不同,“.”的匹配范围也有所不同,对于Trident内核的浏览器,如IE来说,“.”同样是匹配除了换行符“\n”以外的任意一个字符,但是对于其它内核的浏览器,如Firefox、Opera、Chrome来说,“.”是匹配除了回车符“\r”和换行符“\n”以外的任意一个字符。
<script type="text/javascript"> document.write(/./.test("\r")); document.write(/./.test("\n")); </script> <!--IE内核的浏览器下输出--> true false <!--非IE内核的浏览器(我使用的是firefox和chrome)下输出-->false false
[align=center] [/align]
相关文章推荐
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 正则表达式简单语法以及正则表达式在iOS中的常用方式
- 正则表达式 特殊字符应用分析[简单详细入门必看]
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 正则表达式常用字符释意
- 最全的常用正则表达式大全――包括校验数字、字符、一些特殊的需求等
- 常用正则表达式字符
- python 正则表达式 概述及常用字符
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 笔记_正则表达式替换字符串中特定范围内的字符。
- 常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 常用正则表达式(通用字符过滤)
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 常用的正则表达式,复制粘贴,正则就这么简单
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等
- 最全的常用正则表达式--包含校验数字、字符、一些特殊的需求等等