如何將a^nb^n與Java正則表達(dá)式匹配?這是一系列教育準(zhǔn)則文章的第二部分。它展示了如何使用查找頭和嵌套引用來(lái)匹配非正則語(yǔ)言a。nbn..嵌套引用首先在以下內(nèi)容中引入:這個(gè)正則表達(dá)式是如何找到三角數(shù)的?一個(gè)典型的非-正規(guī)語(yǔ)言是:L = { anbn: n > 0 }這是所有非空字符串的語(yǔ)言,由若干個(gè)a之后是相同數(shù)量的b該語(yǔ)言中字符串的示例如下ab, aabb, aaabbb.此語(yǔ)言可以顯示為非常規(guī)語(yǔ)言。泵引理..它實(shí)際上是一個(gè)原型上下文無(wú)關(guān)語(yǔ)言,它可以由上下文無(wú)關(guān)語(yǔ)法 S → aSb | ab.盡管如此,現(xiàn)代regex實(shí)現(xiàn)清楚地認(rèn)識(shí)到的不僅僅是普通語(yǔ)言。也就是說(shuō),從形式語(yǔ)言理論的定義來(lái)看,它們并不是“規(guī)則”的。PCRE和Perl支持遞歸regex,而.NET支持平衡組定義。更少的“花哨”特性,例如反向引用匹配,意味著正則表達(dá)式是不正常的。但是這些“基本”功能到底有多強(qiáng)大呢?我們能認(rèn)出L例如,使用Java regex?我們是否可以將查找器和嵌套引用組合在一起,并有一個(gè)可以與之協(xié)同工作的模式呢?String.matches來(lái)匹配字符串,如ab, aabb, aaabbb等等?參考文獻(xiàn)perlfaq 6:我可以使用Perl正則表達(dá)式來(lái)匹配平衡的文本嗎?MSDN.正則表達(dá)式語(yǔ)言元素.平衡組定義pcre.org-PCRE手冊(cè)頁(yè)正則表達(dá)式。 - 環(huán)顧四周和分組和反向引用java.util.regex.Pattern相關(guān)問(wèn)題查找是否會(huì)影響正則表達(dá)式可以匹配哪些語(yǔ)言?.NET Regex平衡組與PCRE遞歸模式
如何將a^nb^n與Java正則表達(dá)式匹配?
慕工程0101907
2019-07-12 18:46:09