3 回答

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個贊
我希望(?i:hot)相當(dāng)于((?i)hot),但事實(shí)并非如此。后一種情況是捕獲組。
一旦看到同一級別的右括號,幾乎所有正則表達(dá)式引擎都會關(guān)閉內(nèi)聯(lián)修飾符。因此,除了捕獲部分之外,以上兩者都是等效的。
第一種語法完全是另一回事。
模式修改跨度
括號不應(yīng)該表示捕獲組或非捕獲組,但它們可以將不同的功能帶入可能捕獲或不捕獲的使用中。緊跟在問號之后的所有左括號對正則表達(dá)式引擎都有特殊含義:
(?...)
標(biāo)志i是一個修飾符。修飾符可以在正則表達(dá)式上下文之外啟用,但一些正則表達(dá)式引擎支持內(nèi)聯(lián)修飾符的語法,這使您能夠在正則表達(dá)式本身內(nèi)啟用它們。因此單詞inline:
(?i)test(?-i)
^ ^
E D
在另一方面有被稱為另一個類似的語法模式改性跨度:(?modifiers:...)其類似于非捕獲組(?:...)具有某些改性劑之間?和:,并將其應(yīng)用于只以包圍的子表達(dá)式:
(?i:test)
有了這樣說,無論是(?i)test(?-i)和(?i:test)是相等的。此功能應(yīng)該啟用/禁用修飾符。時期。
我們不期望它有更多功能。
添加回答
舉報