正则表达式()()\1\2的用法

\1表示重复正则第一个圆括号内匹配到的内容\2表示重复正则第二个圆括号内匹配到的内容比如有以下正则:([a-z])([a-z])\2\1则可以匹配字符串abba第一个圆括号内的正则匹配字符a,则在字符串最后\1这个位置必须是字符a,第二个括号匹配字符b,在倒数第二个位置\2必须是字符b如果有嵌套的圆括号,顺序是按左括号的次序计算的

楼主说的很好,但是我一开始也没全部理解。补充下我的理解。帮助新手。([a-z])([a-z])\2\1先简化为(a)(b)\2\1,新手可以先不管\2\1。先看(a)(b),就是匹配“ab"。(a)(b)\2\1就是“ab"加上\2\1的内容进行匹配,\2这里是(b),(a)(b)\2就是匹配"abb",同理(a)(b)\2\1匹配"abba"。看之前最好先去理解下捕获组的概念。
时间: 2024-09-30 19:05:38

正则表达式()()\1\2的用法的相关文章

Python正则表达式Regular Expression基本用法

资料来源:http://blog.csdn.net/whycadi/article/details/2011046   直接从网上资料转载过来,作为自己的参考.这个写的很清楚.先拿来看看. 1.正则表达式re模块的基本函数. (1)findall函数的用法 findall(rule,target[,flag])是在目标字符串中找到符合规则的字符串.参数说明:rule表示规则,target表示目标字符串,[,flag]表示的是规则选项.返回的结果是一个列表.若没找到符合的,是一个空列表. 如: 因

正则表达式的格式及用法

利用正则表达式的各种格式及用法     主要利用正则表达式进行搜索查找的命令常用的为grep(检索).egrep(扩展grep)和fgrep. grep:利用正则表达式以及文本信息等条件检索文件中信息的命令,并显示包含匹配的字符串的行. 格式: grep [options] 'pattern' filename options:选项(可省略) pattern:正则表达式及文本 filename:文件名 选项: -i:忽略字符大小写 --color:给匹配的字符串加颜色 -o:只显示匹配的"字符串

正则表达式介绍及常见用法

正则表达式(Regular Expression),又称正规表示法.常规表示法,在实际的软件开发项目中经常会被使用到.它使用单个字符串来描述.匹配并获取一系列符合某个句法规则的结果. 我将从最基础的部分为大家写这个正则表达式教程. 正则表达式起源   1956年,数学家Stephen Kleene在Warren McCulloch和Walter Pitts早期神经系统工作的基础上,设计出了一个数学符号体系--regular sets(规则的集合),这个东西很快被计算机科学家用于编译器的扫描或词法

正则表达式中圆括号的用法--也叫后向引用

所谓后向引用:一个正则表达式使用了圆括号()导致相关匹配将存储到一个临时缓冲区中,可以使用'\n'来访问其中的缓冲区,其中n为一个标识特定缓冲区的一位或两位十进制数,表达式中有过对()缓冲区将会有多个结果当然可以使用非捕获元字符 ?: , ?=  , ?! 来忽略对相关匹配的保存 问题: 如果不忽略这种缓冲区保存会有什么影响,什么时候要忽略保存? 答:正则表达式() 的用法,叫后向引用,也叫反向引用,就是将正则表达式的匹配结果临时存储起来,供以后调用  例1: var num = "1234 5

正则表达式中/g的用法

转载:http://blog.myspace.cn/e/405164495.htm 解答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”这个问题,也为了能够便于大家对正则表达式有一个更为综合和深刻的认识,我将一些关键点和容易犯糊涂的地方再系统总结一下. 总结1:附件参数g的用法 表达式加上参数g之后,表明可以进行全局匹配,注意这里“可以”的含义.我们详细叙述: 1)对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次

Java中正则表达式的几种用法

多数内容转载自:http://www.jb51.net/tools/regex.htm ,有改动 用到了java.util.regex包: 1. 验证 Pattern pattern = Pattern.compile("^[1][3-8]\\d{9}$"); Matcher matcher = pattern.matcher("13565765432"); System.out.println(matcher.matches()?"手机号输入合法&quo

正则表达式re.S的用法

在Python的正则表达式中,有一个参数为re.S.它表示"."的作用扩展到整个字符串,包括"\n".看如下代码: 1 import re 2 a = '''asdfsafhellopass: 3 worldafdsf 4 ''' 5 b = re.findall('hello(.*?)world',a) 6 c = re.findall('hello(.*?)world',a,re.S) 7 print 'b is ' , b 8 print 'c is ' ,

正则表达式中圆括号的用法

var rgExp = /(^\D*[0-9])/; var str = "this is fun 01 stuff"; var resu = str.match(rgExp); document.writeln(resu); 结果为: this is fun 0,this is fun 0 如果使用圆括号的模式在匹配完成后,会记住这一匹配.被记住的值保存在结果数组中,此例中的结果中间有一个逗号,表明它们是数组的两项.第一个结果是匹配,第二个来自圆括号模式保存的值.如果不用圆括号括着整

C#正则表达式Regex类的用法

1.字符串替换 例如我想把如下格式记录中的NAME值修改为WANG string line="ADDR=1234;NAME=ZHANG;PHONE=6789"; Regex reg = new Regex("NAME=(.+);"); string modified = reg.Replace(line, "NAME=WANG;"); 修改后的字符串为 ADDR=1234;NAME=WANG;PHONE=6789 2.字符串匹配 例如我想提取刚才