正则入门:边界的定义与相对性

来源:互联网 发布:桌面切换软件 编辑:程序博客网 时间:2024/05/16 13:53

讲了这么多,还漏掉了一个重要的内容:究竟什么才算边界?

通常情况下,以 空格、段落首行、段落末尾、逗号、句号 等符号作为边界,值得注意的是,分隔符“-”也可以作为边界

正则如下:

\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!

与上面唯一不同的是:这次我们匹配逗号“,”,而它本身也是一个边界,结果与上面完全相反。可见,对于“,”而言,它的边界是一个普通字母。

边界的相对性是很重要的,因为我们很多时候需要匹配诸如“<”这样的字符。

0 0
原创粉丝点击