详解JavaScript正则表明式之分组相配及反向援引,

作者: 网络应用  发布:2019-09-06

语法

语法

元字符:(pattern)  功能:用于屡次相称的分组

元字符:(pattern)  作用:用于反复匹配的分组

属性$1~$9  一旦它(们)存在,用于获取相应分组中万分到的子串

属性$1~$9  若是它(们)存在,用于获取相应分组中万分到的子串

1或$1  用于相配第叁个分组中的内容

1或$1  用于相配第多少个分组中的内容

2或$2  用于相称第八个分组中的内容

2或$2  用于相配第一个分组中的内容

...

...

9或$9  用于相称第一个分组中的内容

9或$9  用于相配第三个分组中的内容

用法示例

用法示例

var reg = /(A+)((B|C|D)+)(E+)/gi;//该正则表达式有4个分组
//对应关系
//RegExp.$1 <-> (A+)
//RegExp.$2 <-> ((B|C|D)+)
//RegExp.$3 <-> (B|C|D)
//RegExp.$4 <-> (E+)
var reg = /(A+)((B|C|D)+)(E+)/gi;//该正则表达式有4个分组
//对应关系
//RegExp.$1 <-> (A+)
//RegExp.$2 <-> ((B|C|D)+)
//RegExp.$3 <-> (B|C|D)
//RegExp.$4 <-> (E+) 

上述的代码也还要提交了$1~$9的用法

上述的代码也还要提交了$1~$9的用法

$1~$9是正则表达式预定义的静态属性,通过RegExp.$1引用

$1~$9是正则表达式预订义的静态属性,通过RegExp.$1引用

分组嵌套关系表达

分组嵌套关系表明

上述代码也足以注脚分组的嵌套关系

上述代码也足以表达分组的嵌套关系

//测试环境  Chrome浏览器
var str = "ABCDE";
var reg = /(A+)((B|C|D)+)(E+)/gi;
str.match(reg);//输出:["ABCDE"]
reg.exec(str,'i');//输出:["ABCDE", "A", "BCD", "D", "E"]
RegExp.$1;//输出:"A"
RegExp.$2;//输出:"BCD"
RegExp.$3;//输出:"D"
RegExp.$4;//输出:"E"
//测试环境 Chrome浏览器
var str = "ABCDE";
var reg = /(A+)((B|C|D)+)(E+)/gi;
str.match(reg);//输出:["ABCDE"]
reg.exec(str,'i');//输出:["ABCDE", "A", "BCD", "D", "E"]
RegExp.$1;//输出:"A"
RegExp.$2;//输出:"BCD"
RegExp.$3;//输出:"D"
RegExp.$4;//输出:"E" 

与此相类似就足以很明亮的看出分组的嵌套关系了

如此就能够很驾驭的看看分组的嵌套关系了

小结来讲:大的分组中存在小的分组时,小的分组是排在该大分组前边的分组,就那样推算

小结来讲:大的分组中设有小的分组时,小的分组是排在该大分组后面包车型客车分组,就那样类推

如上所述便是本文的全体内容了,希望大家能够欣赏。

其次有些

您恐怕感兴趣的篇章:

  • 详解JavaScript正则表明式之分组相称及反向引用
  • JavaScript正则表明式的分组匹配详解
  • JS正则表明式获取分组内容的点子详解
  • js相配网站url的正则表达式集结
  • String字符串相配javascript 正则表明式
  • JavaScript正则表明式相配 div style标签
  • js正则表达式相称数字字母下划线等
  • 详解javascript 正则表达式之分组与前瞻匹配

这一部分重大教学类似于"1"那几个东西的用法

分组相称之反向援引

语法

元字符 1~9  功用:用来表示后面以合营的字符或分组的一个援引

用法示例

参照小说:[原]AS3 js正则表明式 反向引用(backreference)

地方说的恐怕有一点点别扭,上面给一个例子:

//一般情况,当我们想匹配任意两个相同的字符(复杂一点就是两个相同的分组)时,往往可以借助下面的写法
//说明:
//(w)用来匹配任何除了换行和制表符的字符, 而1是对(w)的一个引用, 所以你可以理解成: (w)1 就是(w)(w)
//但是,
//(w)1 和 (w)(w)的不同之处在于, (w)(w)表示任意两个连续的字符, 比如Ac, MM, K9, 都可以,
// 但(w)1只能是AA, CC, 99 这样连续相同的字符
//所以, 你可以这样理解, 1 是对(w)的一个实例化引用, 当(w) 匹配到A时, 1 被表达成A, 当(w)匹配9时, 1 被表示成9
//说了这么多, 可能有些废话, 下面这个例子就很好理解了
var str = "AA Am 99";
var reg = /(w)1/g;
str.match(reg);//输出: ["AA", "99"] 

故此, 参照上面作者所引用的稿子中提交的 "关键字寻找高亮呈现的正则表达用法" 的例子, 小编付诸自己立异的小的DEMO

尽管这么些DEMO未有利用任何的关于反向引用的知识点::>_<::

//测试环境 Chrome浏览器
var key = "keywords";//搜索的关键字
var text = " I am a text, and I have a keywords before this";//待匹配的文本
var reg = new RegExp("("+key+")","g");
text.replace(reg,"$1");//输出: " I am a text, and I have a keywords before this"

上边给大家详细介绍下正则表达式之反向援引

 示例1:

public static void main(String[] args) { 
 String s="99-3933"; 
 boolean b=Pattern.matches("([\d])\1[-]([3])\1\2{2}", s); 
 System.out.println(b); 
}

反向引用,相配重复的数字

([d])====>1

([3])====>2

示例2:

public class test { 
 public static void main(String[] args) { 
  String s="99-393399-3933"; 
  boolean b=Pattern.matches("(([\d])\2[-]([3])\2\3{2})\1", s); 
  System.out.println(b); 
 } 
}

您只怕感兴趣的稿子:

  • JavaScript正则表明式的分组相称详解
  • 浅谈JavaScript正则表明式分组相称
  • JS正则表明式获取分组内容的点子详解
  • js相配网址url的正则表明式集结
  • String字符串相配javascript 正则表明式
  • JavaScript正则表明式相称 div style标签
  • js正则表达式相配数字字母下划线等
  • 详解javascript 正则说明式之分组与前瞻匹配

本文由王中王开奖结果发布于网络应用,转载请注明出处:详解JavaScript正则表明式之分组相配及反向援引,

关键词: