为了账号安全,请及时绑定邮箱和手机立即绑定

如何将a^nb^n与Java正则表达式匹配?

如何将a^nb^n与Java正则表达式匹配?

慕工程0101907 2019-07-12 18:46:09
如何将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递归模式
查看完整描述

3 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

鉴于没有提到支持递归模式的PCRE,我只想指出描述所涉语言的最简单和最有效的PCRE示例:

/^(a(?1)?b)$/


查看完整回答
反对 回复 2019-07-12
  • 3 回答
  • 0 关注
  • 561 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信