正則表達(dá)式分組匹配 ([@#]).*(?1)[@#]怎么解讀這個正則式?
([@#]).*(?1)[@#]怎么解讀這個正則式?數(shù)字表示匹配組的內(nèi)容。1代表第一組。你可以問一個小組的情況。簡單地說,a()是一個組,即([@#])匹配的內(nèi)容。換句話說,如果您匹配第一個標(biāo)語中的@
([@#]).*(?1)[@#]怎么解讀這個正則式?
數(shù)字表示匹配組的內(nèi)容。1代表第一組。你可以問一個小組的情況。簡單地說,a()是一個組,即([@#])匹配的內(nèi)容。換句話說,如果您匹配第一個標(biāo)語中的@符號,1是@(請注意,它不能是#)。如果您得到第一個([@#])匹配項#,則#的值為1。
(?! string inside)表示與“string inside”不匹配才能成功。
也就是說,只有不能顯示組1的內(nèi)容,才能成功。
示例:
#可以成功匹配多個任意字符
@可以成功匹配多個任意字符
@不能成功匹配多個任意字符(@和@重復(fù))
shell里面的正則式里可否使用后向引用?
返回引用n無論匹配的第n個捕獲組是什么,每個捕獲組都存儲在使用后的特殊位置,以備將來使用。這些存儲在組中的特殊值稱為“反向引用”。反向引用是按照從左到右遇到的左括號字符的順序創(chuàng)建和編號的。在正則表達(dá)式中,可以從構(gòu)造函數(shù)、escapeN和$N獲取反向引用。