正则中的圆括号()的用途详解
来源: 阅读:769 次 日期:2015-04-24 10:28:43
温馨提示: 小编为您整理了“正则中的圆括号()的用途详解”,方便广大网友查阅!

正则表达式中的圆括号的作用是对字符进行分组,并保存匹配的文本。今天我们就来详细探讨下正则中的圆括号()的用途,希望对大家学习正则有所帮助。

首先我们前面介绍过,replace()方法中的第二个参数若是回调函数,那么这个回调函数中的参数就是匹配成功后的结果。。。。。,那么有没有考虑回调函数中有多个参数呢?

先举个例子:

<!DOCTYPE>

<html>

<head>

<meta charset='utf-8'>

<title></title>

</head>

<script type="text/javascript">

window.onload=function(){

var date='2015-8-7';

var re=/(\d+)(-)/g;

date.replace(re,function(a1,a2,a3){

/*alert(a1);*/

alert(a2);

/*alert(a3);*/

});

};

</script>

<body>

</body>

</html>

上面的例子需要你分别查看a1,a2,a3的值,你会发现一些规律

单独查看a1:2015- 8-

单独查看a2:2015 8

单独查看a3:- -

把三个参数形象的打个比方吧,a1相当于母亲,a2是大儿子,a3是小儿子,每个儿子都继承了妈妈的一部分基因

a1是var re=/\d+-/g; 这个正则的结果

a2是var re=/(\d+)(-)/g;左边第一个括号的结果

a2是var re=/(\d+)(-)/g;左边第二个括号的结果

说了这么多参数的用途,下面我们来实现输出:2015.8.7

方法一:对儿子操作

<!DOCTYPE>

<html>

<head>

<meta charset='utf-8'>

<title></title>

</head>

<script type="text/javascript">

window.onload=function(){

var date='2015-8-7';

var re=/(\d+)(-)/g;

var a=date.replace(re,function(a1,a2,a3){

return a2+'.';

});

alert(a);

};

</script>

<body>

</body>

</html>

方法二:对母亲操作

<!DOCTYPE>

<html>

<head>

<meta charset='utf-8'>

<title></title>

</head>

<script type="text/javascript">

window.onload=function(){

var date='2015-8-7';

var re=/(\d+)(-)/g;

var a=date.replace(re,function(a1,a2,a3){

return a1.substring(0,a1.length-1)+'.';

});

alert(a);

};

</script>

<body>

</body>

</html>

学了正则中的replace()方法的回调函的多个参数与括号之间的关系,瞬间觉得正则复杂了起来。。。。

正则表达式中方括号[]与圆括号()的区别是什么?

最基本的意思:小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个,大括号就是匹配几次

但是括号里变加上其他字符就有不同意思 详细介绍 例如:

{n}

n是一个非负整数.匹配确定的n次.例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o.

{n,}

n是一个非负整数.至少匹配n次.例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o.“o{1,}”等价于“o+”.“o{0,}”则等价于“o*”.

{n,m}

m和n均为非负整数,其中n

[] 无意义,一般用作匹配一个集合

比如

[0-9] :查找任何从 0 至 9 的数字.

[a-Z] :查找任何从小写 a 到大写 Z 的字符.

()也是匹配一个集合,但它还可以用作反向引用.

以上所述就是本文的全部内容了,希望大家能够喜欢。

更多信息请查看IT技术专栏

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map