欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

正则表达式之分组的回溯引用问题

程序员文章站 2022-06-16 11:38:05
正则表达式简介正则表达式,又称规则表达式。(英语:regular expression,在代码中常简写为regex、regexp或re),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某...

正则表达式简介

正则表达式,又称规则表达式。(英语:regular expression,在代码中常简写为regex、regexp或re),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

引子

前端开发中,难免会遇到需要匹配标签的需求,这么简单的需求,不就是两个尖括号包裹一个标签名嘛,接下来一顿操作,/<[\w]+>.*<\/[\w]+>/g,然后完美匹配了 <div>xx</div> 等内容,需求完成…

等等,咋看之下,当前正则确实能匹配各种标签,但是它同样能匹配类似 <div>xx</p> 的内容。这就意味着我们需要保持两个尖括号内的内容相同才行。

正则之分组回溯引用 分组 ()

所谓分组,就是把要匹配的内容放在括号()里。括号里的内容可以视为是一个整体的子表达式

/<([\w]+)>.*<\/([\w]+)>/g

回溯引用 \n

正则表达式还提供了一种引用之前匹配分组的机制,有些时候,我们或许会寻找到一个子匹配,该匹配接下来会再次出现。

// 该表达式中的 \1 就是整个表达式中的第一个分组
var reg = /<([\w]+)>.*<\/\1>/
reg.test('<div>xx</div>') // true
reg.test('<div>xx</p>') // false

到此这篇关于正则表达式之分组的回溯引用问题的文章就介绍到这了,更多相关正则表达式回溯引用内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!