您的位置:首页 > 编程语言 > PHP开发

正则入门:匹配区间内数目的字符

2011-02-03 00:00 1251 查看
我们再次考虑 000-999 的匹配:“\d{3}”,尽管它没有错,但它只能匹配精确地匹配 3 位:000、001、002 … 100、101 … 999。而通常,我们需要对于 0、10、99 这样的数也能够匹配,这时,就需要指定可以匹配 1 到 3 位的数字。

正则表达式中,使用“{最小数目,最大数目}”的语法来实现,它的使用方式与上一节介绍的匹配固定数目字符的语法相同。

[0-9]{1,3}

效果演示

100

001

1xxx

1001

1c

本例代码

function reg_replace()
{
var test = document.getElementById("test");
aim = "1[35][0-9]{9}";
var regex = new RegExp("("+aim+")","g");
test.innerHTML = test.innerHTML.replace(regex,"<span style='background-color:orange'>$1</span>");
}

我们发现了两个问题:1、我们不希望 “1234” 被匹配,然而,它被分成两部分“123”和“4”进行了匹配,如何不让它被匹配;2、为什么要被分成 123 和 4,而不是 1 和 234?我们留待后面讨论。

注意两个特例:

最小数目可以是 0,所以 “{0,1}”,相当于 “?”。

如果不限制最大数目,可以将最大数目设为空,所以“\d{1,}”相当于“+”;而“{0,}”相当于“*”。

“{”和“}”也是元字符,当我们需要对它们进行匹配的时候,使用“\”进行转义:“\{”和“\}”。

延伸阅读

此文章所在专题列表如下:

什么是正则表达式?

正则入门:匹配固定的单个字符

正则入门:匹配任意的单个字符

正则入门:字符组的使用

正则入门:在字符组中使用字符区间

正则入门:反义字符组的使用

正则入门:匹配空字符

正则入门:匹配一个或多个字符

正则入门:匹配零个或多个字符

正则入门:匹配零个或一个字符串

正则入门:匹配固定数目的字符

正则入门:匹配区间内数目的字符

正则入门:贪婪匹配

正则入门:惰性匹配

正则入门:两个匹配模式

正则入门:匹配单词边界

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

正则入门:匹配非单词边界

正则入门:匹配文本首和尾

正则入门:子模式

正则入门:“或”匹配

正则入门:后向引用文本替换

正则入门:非获取匹配

正则总结:JavaScript中的正则表达式

正则总结:正则表达式在js中的高级应用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: