Tag: 捕获组的方式

我们怎样才能匹配一个Java正则expression式?

这是一系列教育正则expression式文章的第二部分。 它展示了如何使用前瞻和嵌套的引用来匹配非规范的语言。 首先介绍嵌套引用: 这个正则expression式如何find三angular形数字? 其中一种典型的非正规语言是: L = { a n b n : n > 0 } 这是所有非空string的语言,由一些数字a组成,后面跟着相同数量的b 。 这种语言的string的例子是ab , aabb , aaabbb 。 这个语言可以通过抽象引理显示为不规则的。 它实际上是一个典型的上下文无关语言 ,可以由上下文无关文法 S → aSb | ab S → aSb | ab 。 尽pipe如此,现代的正则expression式实现清楚地认识到不仅仅是正规的语言。 也就是说,它们不是由forms语言理论定义的“规则”。 PCRE和Perl支持recursion正则expression式,.NET支持平衡组定义。 更less的“奇特”特征,例如反向引用匹配,意味着正则expression式不规则。 但是这个“基本”function有多强大呢? 我们可以用Java正则expression式来识别L吗? 我们是否可以将lookaround和嵌套的引用结合在一起,并且有一个与例如String.matches匹配的模式来匹配像ab , aabb , aaabbb等string? 参考 perlfaq6:我可以使用Perl正则expression式来匹配平衡文本吗? MSDN – 正则expression式语言元素 […]