主页 > 知识库 > 正则中的圆括号()的用途详解

正则中的圆括号()的用途详解

热门标签:服务器配置 Linux服务器 电子围栏 团购网站 阿里云 Mysql连接数设置 银行业务 科大讯飞语音识别系统

首先我们前面介绍过,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 的字符.
()也是匹配一个集合,但它还可以用作反向引用.

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

您可能感兴趣的文章:
  • asp 过滤尖括号内所有内容的正则代码
  • JS 正则表达式中小括号的应用
  • php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
  • 正则表达式(括号)、[中括号]、{大括号}的区别小结
  • python正则表达式中的括号匹配问题

标签:大理 广元 萍乡 枣庄 衢州 衡水 江苏 蚌埠

巨人网络通讯声明:本文标题《正则中的圆括号()的用途详解》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266