如何将a^nb^n与Java正则表达式匹配?这是一系列教育准则文章的第二部分。它展示了如何使用查找头和嵌套引用来匹配非正则语言a。nbn..嵌套引用首先在以下内容中引入:这个正则表达式是如何找到三角数的?一个典型的非-正规语言是:L = { anbn: n > 0 }这是所有非空字符串的语言,由若干个a之后是相同数量的b该语言中字符串的示例如下ab, aabb, aaabbb.此语言可以显示为非常规语言。泵引理..它实际上是一个原型上下文无关语言,它可以由上下文无关语法 S → aSb | ab.尽管如此,现代regex实现清楚地认识到的不仅仅是普通语言。也就是说,从形式语言理论的定义来看,它们并不是“规则”的。PCRE和Perl支持递归regex,而.NET支持平衡组定义。更少的“花哨”特性,例如反向引用匹配,意味着正则表达式是不正常的。但是这些“基本”功能到底有多强大呢?我们能认出L例如,使用Java regex?我们是否可以将查找器和嵌套引用组合在一起,并有一个可以与之协同工作的模式呢?String.matches来匹配字符串,如ab, aabb, aaabbb等等?参考文献perlfaq 6:我可以使用Perl正则表达式来匹配平衡的文本吗?MSDN.正则表达式语言元素.平衡组定义pcre.org-PCRE手册页正则表达式。 - 环顾四周和分组和反向引用java.util.regex.Pattern相关问题查找是否会影响正则表达式可以匹配哪些语言?.NET Regex平衡组与PCRE递归模式
添加回答
举报
0/150
提交
取消