正则入门:边界的定义与相对性
2015-02-05 12:41
337 查看
讲了这么多,还漏掉了一个重要的内容:究竟什么才算边界?
通常情况下,以 空格、段落首行、段落末尾、逗号、句号 等符号作为边界,值得注意的是,分隔符“-”也可以作为边界。
正则如下:
welcome to nowa-magic this magic place!
这是什么原因呢?其实很好理解,从“-”的字面意思:分隔符,大致就可以想到了。实际上,在英语中,它是用来做单词分隔的。
这里有个重要的搜索引擎优化常识,大家注意到本文档的命名,我采用的是:Regular-Expression-Tutorial.pdf,为什么不用下划线分隔,命名成Regular_Expression_Tutorial.pdf 呢?
因为当搜索引擎看到“-”的时候,会把它视为一个空格“ ”,而看到下划线“_”的时候,会把它视为空字符“”,实际上,下划线的正确叫法是“连字符”。于是,当我命名为 Regular-Expression-Tutorial.pdf 时,搜索引擎看到的是: Regular Expression Tutorial.pdf,而当我命名成 Regular_Expression_Tutorial.pdf
时,搜索引擎看作 RegularExpressionTutorial.pdf 。
可以看出,正则表达式在字符边界问题上 对“-”的处理方式 与 搜索引擎相同。
边界的相对性:
当你对一个普通字符,比如“s”,设定边界的时候,它的边界是诸如空格、分隔符、逗号、句号等。
当你对一个边界,比如分隔符“-”或者“,”等,设定边界的时候,它的边界是普通字符。
正则如下:
welcome to nowamagic,this magic place!
与上面唯一不同的是:这次我们匹配逗号“,”,而它本身也是一个边界,结果与上面完全相反。可见,对于“,”而言,它的边界是一个普通字母。
边界的相对性是很重要的,因为我们很多时候需要匹配诸如“<”这样的字符。
通常情况下,以 空格、段落首行、段落末尾、逗号、句号 等符号作为边界,值得注意的是,分隔符“-”也可以作为边界。
正则如下:
\bmagic\b
效果演示
welcome to nowa-magic this magic place!
本例代码
function reg_replace() { var test = document.getElementById("test"); var regex = /\b(magic)\b/g; test.innerHTML = test.innerHTML.replace(regex,"<span style='background-color:orange'>$1</span>"); }
这是什么原因呢?其实很好理解,从“-”的字面意思:分隔符,大致就可以想到了。实际上,在英语中,它是用来做单词分隔的。
这里有个重要的搜索引擎优化常识,大家注意到本文档的命名,我采用的是:Regular-Expression-Tutorial.pdf,为什么不用下划线分隔,命名成Regular_Expression_Tutorial.pdf 呢?
因为当搜索引擎看到“-”的时候,会把它视为一个空格“ ”,而看到下划线“_”的时候,会把它视为空字符“”,实际上,下划线的正确叫法是“连字符”。于是,当我命名为 Regular-Expression-Tutorial.pdf 时,搜索引擎看到的是: Regular Expression Tutorial.pdf,而当我命名成 Regular_Expression_Tutorial.pdf
时,搜索引擎看作 RegularExpressionTutorial.pdf 。
可以看出,正则表达式在字符边界问题上 对“-”的处理方式 与 搜索引擎相同。
边界的相对性:
当你对一个普通字符,比如“s”,设定边界的时候,它的边界是诸如空格、分隔符、逗号、句号等。
当你对一个边界,比如分隔符“-”或者“,”等,设定边界的时候,它的边界是普通字符。
正则如下:
\b(,)\b
效果演示
welcome to nowamagic,this magic place!与上面唯一不同的是:这次我们匹配逗号“,”,而它本身也是一个边界,结果与上面完全相反。可见,对于“,”而言,它的边界是一个普通字母。
边界的相对性是很重要的,因为我们很多时候需要匹配诸如“<”这样的字符。
相关文章推荐
- 正则入门:边界的定义与相对性
- 正则入门:匹配单词边界
- java 正则(1) 初步认识 / 中括号表范围 / 预定义字符类\s \w \d / 边界匹配 / 几个正则的例子 / 竖线是或者 / 中括号里加上尖号是非
- 简单入门正则表达式 - 第七章 字符串、行和词边界
- ES5基础之正则表达式02:范围类、预定义类和边界字符
- 正则入门:匹配非单词边界
- javascript正则表达式(2)——JS预定义类及边界
- javascript入门系列演示·函数的定义以及简单参数使用,调用函数
- 正则表达式入门
- 正则表达式30分钟入门教程(转)
- 正则表达式30分钟入门教程(第二版)
- MOSS 2007 入门(4) : 站点定义和站点模板
- 正则表达式30分钟入门教程
- js入门实例の构造函数/方法的定义和调用/原型对象
- 正则学习:组的定义及引用方式
- 正则表达式30分钟入门教程
- 正则表达式30分钟入门教程(第二版)
- 正则表达式定义
- C#入门(2)简单预定义数据类型
- 正则表达式30分钟入门教程