正则入门:匹配固定数目的字符
2011-02-03 00:00
1001 查看
尽管“?”、“+”、“*”这三个元字符的出现解决了很多问题,但是,它们并不完善:1.没有办法指定最多匹配多少个字符,比如说,我们要匹配手机号码,那么应该是 11 个数字,而“+”和“*”会匹配尽可能多的数字,不管是 17 个还是 18 个都认为是正确的。2.没有办法指定最少匹配多少个字符,“+”、“*”、“?”,所能提供的最少字符,要么零个,要么一个。
正则表达式中,可以在 单个字符(比如“j”)、字符组(比如“[abcde]”)、特定字符类型(比如“\d”)、单个任意字符(即“.”) 后面加“{数字}”,来表示匹配零个或多个字符组成的字符串。
例如:使用“\d{3}”,可以匹配从 000 到 999,这 1000 个数。而使用“a{6}”,则可以匹配“aaaaaa”(也只能匹配它,因为“a”是固定字符)。
现在我们考虑一个更复杂的例子,假如我们要匹配手机号码,那么它的规则是:首位为“1”,第二位为“3 或者 5”,后面 9 位任意数字。那么它的匹配应该是这样的:
18677530289
15345231123
什么是正则表达式?
正则入门:匹配固定的单个字符
正则入门:匹配任意的单个字符
正则入门:字符组的使用
正则入门:在字符组中使用字符区间
正则入门:反义字符组的使用
正则入门:匹配空字符
正则入门:匹配一个或多个字符
正则入门:匹配零个或多个字符
正则入门:匹配零个或一个字符串
正则入门:匹配固定数目的字符
正则入门:匹配区间内数目的字符
正则入门:贪婪匹配
正则入门:惰性匹配
正则入门:两个匹配模式
正则入门:匹配单词边界
正则入门:边界的定义与相对性
正则入门:匹配非单词边界
正则入门:匹配文本首和尾
正则入门:子模式
正则入门:“或”匹配
正则入门:后向引用文本替换
正则入门:非获取匹配
正则总结:JavaScript中的正则表达式
正则总结:正则表达式在js中的高级应用
正则表达式中,可以在 单个字符(比如“j”)、字符组(比如“[abcde]”)、特定字符类型(比如“\d”)、单个任意字符(即“.”) 后面加“{数字}”,来表示匹配零个或多个字符组成的字符串。
例如:使用“\d{3}”,可以匹配从 000 到 999,这 1000 个数。而使用“a{6}”,则可以匹配“aaaaaa”(也只能匹配它,因为“a”是固定字符)。
现在我们考虑一个更复杂的例子,假如我们要匹配手机号码,那么它的规则是:首位为“1”,第二位为“3 或者 5”,后面 9 位任意数字。那么它的匹配应该是这样的:
1[35][0-9]{9}
效果演示
1353678123418677530289
15345231123
本例代码
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>"); }
延伸阅读
此文章所在专题列表如下:什么是正则表达式?
正则入门:匹配固定的单个字符
正则入门:匹配任意的单个字符
正则入门:字符组的使用
正则入门:在字符组中使用字符区间
正则入门:反义字符组的使用
正则入门:匹配空字符
正则入门:匹配一个或多个字符
正则入门:匹配零个或多个字符
正则入门:匹配零个或一个字符串
正则入门:匹配固定数目的字符
正则入门:匹配区间内数目的字符
正则入门:贪婪匹配
正则入门:惰性匹配
正则入门:两个匹配模式
正则入门:匹配单词边界
正则入门:边界的定义与相对性
正则入门:匹配非单词边界
正则入门:匹配文本首和尾
正则入门:子模式
正则入门:“或”匹配
正则入门:后向引用文本替换
正则入门:非获取匹配
正则总结:JavaScript中的正则表达式
正则总结:正则表达式在js中的高级应用
相关文章推荐
- 正则入门:匹配区间内数目的字符
- 正则入门:匹配固定的单个字符
- 简单入门正则表达式 - 第四章 单字符的匹配
- 简单入门正则表达式 - 第五章 多字符的匹配
- 正则表达式入门(六)匹配unicode和其他字符
- 正则入门:匹配任意的单个字符
- 正则入门:匹配空字符
- 正则入门:匹配一个或多个字符
- 正则入门:匹配零个或多个字符
- 正则表达式 入门 -- 简单字符匹配、元字符
- 正则匹配任意6-8个数字和英文大小写字符
- php 正则匹配字符串为空白字符或空字符
- awk正则匹配列中指定的字符
- 正则匹配特殊字符之坑
- 正则表达式学习(四)匹配单个字符
- 微软的正则表达式教程(三):字符匹配
- 简单入门正则表达式 - 第六章 元字符与修饰符
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- 如何用正则表达式匹配指定字符开始和指定字符结束
- Python:正则表达式匹配任意字符(包括换行符)的写法