正则中的圆括号()的用途详解_正则表达式

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

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索正则表达式 圆括号、正则表达式匹配圆括号、正则表达式中的圆括号、正则表达式详解、nginx正则表达式详解,以便于您获取更多的相关知识。

时间: 2024-07-30 19:19:16

正则中的圆括号()的用途详解_正则表达式的相关文章

比较全面的C 、Java、JavaScript中的正则表达式详解_正则表达式

什么是正则表达式? 正则表达式(Regular Expression) 就是用某种模式去匹配一类字符串的公式.如你要在一篇文章中查找第一个字是"罗"最后一个字是"浩"的三个字的姓名,即"罗 * 浩":那么"罗 * 浩"就是公式,也称作 模式(Pattern) ,这篇文章就是 要匹配的串( 或叫文本 text) .再如,你要检查输入的一个字符串是否是 126 邮箱的格式,你得制定一个规则去查检,这种规则就是正则表达式. 从入门开

JavaScript正则表达式中的ignoreCase属性使用详解_基础知识

 ignoreCase是正则表达式对象的只读布尔属性.它指定是否一个特定的正则表达式执行不区分大小写的匹配.,它与"i"属性创建.语法 RegExpObject.ignoreCase 下面是参数的详细信息:     NA 返回值: 如果"i"修改被设置返回"TRUE",否则返回"FALSE". 例子: <html> <head> <title>JavaScript RegExp ignore

正则表达式详解_正则表达式

正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 正则表达式可以干嘛? 1.数据有效性验证,可以对一个字符串进行测试,看该字符串是否符合某种规定. 2.替换文本,可以在文档中将指定的文字删除,或替换为其他文字. 3.根据字符串提取一个子字符串,用来在

Python正则表达式的七个使用范例详解_正则表达式

作为一个概念而言,正则表达式对于Python来说并不是独有的.但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别. 本文是一系列关于Python正则表达式文章的其中一部分.在这个系列的第一篇文章中,我们将重点讨论如何使用Python中的正则表达式并突出Python中一些独有的特性. 我们将介绍Python中对字符串进行搜索和查找的一些方法.然后我们讲讨论如何使用分组来处理我们查找到的匹配对象的子项. 我们有兴趣使用的Python中正则表达式的模块通常叫做're'. >>>

正则表达式基本语法详解_正则表达式

正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符").模式描述在搜索文本时要匹配的一个或多个字符串. 1.正则表达式基本语法 两个特殊的符号'^'和'$'.他们的作用是分别指出一个字符串的开始和结束.例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等): "of despair$":表示所以以&q

.Net中的序列化和反序列化详解_实用技巧

序列化和反序列化相信大家都经常听到,也都会用, 然而有些人可能不知道:.net为什么要有这个东西以及.net Frameword如何为我们实现这样的机制, 在这里我也是简单谈谈我对序列化和反序列化的一些理解. 一.什么序列化和反序列化序列化通俗地讲就是将一个对象转换成一个字节流的过程,这样就可以轻松保存在磁盘文件或数据库中.反序列化是序列化的逆过程,就是将一个字节流转换回原来的对象的过程. 然而为什么需要序列化和反序列化这样的机制呢?这个问题也就涉及到序列化和反序列化的用途了, 对于序列化的主要

JavaScript中的this关键字使用详解_基础知识

 和其它许多面向对象的语言一样,JavaScript 中也有 this 关键字,this 在函数中用来指向调用此方法的对象.实际编程中要判断 this 到底指向谁,一般可遵循以下原则:     如果该函数被 Function.call 或者 Function.apply 调用,那么 this 指向 call/apply 的第一个参数,如果参数是 null 或者 undefined,this 则指向全局对象(在浏览器中的话,全局对象就是 window 对象).     如果该函数被 Functio

JavaScript中的replace()方法使用详解_基础知识

 该方法找到一个正则表达式的字符串之间的匹配,并取代了匹配的子带的新的子串. 替换字符串可以包含以下特殊替换模式:  语法 string.replace(regexp/substr, newSubStr/function[, flags]); 下面是参数的详细信息:     regexp : 一个RegExp对象.匹配被替换参数的返回#2.     substr : 一个字符串,由newSubStr 来替换     newSubStr : 它取代从参数中收到的子字符串 #1.     funct

JavaScript中for循环的使用详解_基础知识

 我们已经看到,while循环有不同变种.本章将介绍另一种流行的循环叫做for循环. for 循环 for循环是循环最紧凑的形式,并包含有以下三个重要部分组成:     循环初始化计数器的初始值.初始化语句执行循环开始之前.     测试语句,将测试如果给定的条件是真还是假.如果条件为真,那么将要执行的循环中给定的代码,否则循环会退出来.     循环语句,可以增加或减少计数器. 可以把所有的三个部分中的一行用分号隔开. 语法 for (initialization; test conditio