有的时候,我们不想让“.”去匹配任何的字符,仅仅想让它匹配“.”这一单个字符,也就是仅匹配它本身,此时,可以使用“.”来对它进行转义。
比如使用正则 w. 可以匹配到 www.nowamagic.net 中的 w. 字符。
如果要匹配“”,可以使用“\”来对它进行转义。后面还会介绍更多需要转义的字符。
“.”过于灵活了,它可以匹配几乎所有的单个字符。有的时候,我们只希望匹配有限个字符中的某一个。这个时候,可以使用字符组。
假设有这样一种情况,我们希望验证某个单词是不是拼写正确,比如说 “head” 是一个单词,“heat”也是一个单词,但“heay”就不是一个单词,所以,“hea”后面要么出现“d”,要么“t”,而如果我们使用“.”来进行匹配,那么不管是“heay”也好,“heas”也罢,都会被匹配(被认为是正确的单词)。
正则表达式提供 字符组 来解决这一问题,对于上例,“hea”后面仅可以匹配“d”或者“t”的情况,它的语法是 “[dt]”。中括号是特殊标记,用以划定属于组内的字符的界限,它所代表的含义是:“匹配 d 或者 t”。
效果演示
正则如下:
.ea[dt]
www.nowamagic.net is heat
www.google.com is head of internet
www.abc.org is heart
www.nowamagic.net is heat
www.google.com is head of internet
www.abc.org is heart
本例代码
<script type="text/javascript"> function reg_replace() { var test = document.getElementById("test"); regex = new RegExp(".ea[dt]","g"); test.innerHTML = test.innerHTML.replace(regex,"<span style='background-color:orange'>heax</span>"); } function reg_split() { var test = document.getElementById("split"); regex = new RegExp(".ea[dt]","g"); test.innerHTML = test.innerHTML.split(regex); } </script>
字符组 虽然由多个字符构成,但它仍只匹配 单个 字符,而字符组能够匹配的单个字符,即是它定义中的字符(“[]”内的字符)。“[]”本身不进行字符匹配,它仅仅划定字符组边界。
延伸阅读
此文章所在专题列表如下:
- 什么是正则表达式?
- 正则入门:匹配固定的单个字符
- 正则入门:匹配任意的单个字符
- 正则入门:字符组的使用
- 正则入门:在字符组中使用字符区间
- 正则入门:反义字符组的使用
- 正则入门:匹配空字符
- 正则入门:匹配一个或多个字符
- 正则入门:匹配零个或多个字符
- 正则入门:匹配零个或一个字符串
- 正则入门:匹配固定数目的字符
- 正则入门:匹配区间内数目的字符
- 正则入门:贪婪匹配
- 正则入门:惰性匹配
- 正则入门:两个匹配模式
- 正则入门:匹配单词边界
- 正则入门:边界的定义与相对性
- 正则入门:匹配非单词边界
- 正则入门:匹配文本首和尾
- 正则入门:子模式
- 正则入门:“或”匹配
- 正则入门:后向引用文本替换
- 正则入门:非获取匹配
- 正则总结:JavaScript中的正则表达式
- 正则总结:正则表达式在js中的高级应用
本文地址:http://www.nowamagic.net/librarys/veda/detail/1022,欢迎访问原出处。
大家都在看