正则表达式的终极能力 - 递归(在.NET的正则表达式实现中匹配嵌套结构的方法)
来源:百度文库 编辑:神马文学网 时间:2024/03/29 20:17:54
今天在QQ问liuzhi如何写一个匹配递归式的正则表达式时,没想到那家伙居然就回答“递归消除”,让我去看编译原理的书。(nnd,他肯定想到正则表达式的实现去了...)
找遍了正则表达式的语法都没发现和递归有关或者可以间接用来实现递归的,不过今天在硬盘找到一个电子书(只有一章),居然有讲解了这个。窃喜,记录之。
例子是:
\((?>[^()]+|\((?)|\)(?<-DEPTH>))*(?(DEPTH)(?!))\)
这个是匹配有效的最多括号的语法,比如:
before (nope (yes (here) okay) after
匹配到的是:(yes (here) okay)
简单翻译了下这个文档:
找遍了正则表达式的语法都没发现和递归有关或者可以间接用来实现递归的,不过今天在硬盘找到一个电子书(只有一章),居然有讲解了这个。窃喜,记录之。
例子是:
\((?>[^()]+|\((?)|\)(?<-DEPTH>))*(?(DEPTH)(?!))\)
这个是匹配有效的最多括号的语法,比如:
before (nope (yes (here) okay) after
匹配到的是:(yes (here) okay)
简单翻译了下这个文档:
正则表达式的终极能力 - 递归(在.NET的正则表达式实现中匹配嵌套结构的方法)
常用的匹配正则表达式和实例
关于正则表达式匹配空格的问题
完善匹配中文的Php正则表达式
常用的匹配正则表达式和实例
【正则表达式专题】正则表达式的应用
JS的正则表达式
常用的正则表达式
正则表达式--递归匹配、非贪婪匹配与分组替换
JAVA中正则表达式的使用
Java中使用正则表达式实现字符串匹配
Java中使用正则表达式实现字符串匹配_似虫非虫
Java中使用正则表达式实现字符串匹配
Java正则表达式的总结
java 正则表达式的使用
一些常用的正则表达式
Extjs 正则表达式的判断
常用的一些正则表达式
正则表达式匹配IP
PHP中关于正则表达式匹配任意字符(包括换行符)的写法
正则表达式中\A,\z和^,$的区别
正则表达式的五个成功习惯
[ 永远的UNIX > Java正则表达式详解 ]
处理正则表达式的java包:regexp