3 回答

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
只要使用\1
... \9
(或者$1
... $9
在一些正則表達(dá)式實(shí)現(xiàn))就像你通常會(huì)。編號從左到右,基于開放括號的位置(因此,嵌套組的編號要大于嵌套在其中的組的編號)。

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
請注意,這是對Zim博士的評論的答復(fù):
“奇怪的是,兩種方法似乎都可以正常工作。我選擇了“ Regulator”,它至少說明了正則表達(dá)式是如何分解的。如果它具有設(shè)置實(shí)現(xiàn)的功能,那么我認(rèn)為我有業(yè)務(wù)?!?/p>
但是我的回答對于評論框來說太長了。
不,您不需要轉(zhuǎn)義加號(在這種情況下為連字符)。在字符類中,以下字符有特殊含義:],^和-。這三個(gè)字符是唯一可能需要轉(zhuǎn)義的字符(請注意,[不需要轉(zhuǎn)義!)。我說可能是因?yàn)樗Q于這些元字符出現(xiàn)的位置。該^只具有特殊的含義(作為否定指標(biāo))時(shí),放置在一個(gè)字符類的開始,在其他地方,它不需要逃逸,將只匹配文字^。一些例子說明:
[^a] // special meaning: matches any character except 'a'
[a^] // matches 'a' or '^'
[\^a] // matches '^' or 'a'
當(dāng)連字符不在字符類的開頭或結(jié)尾時(shí),連字符僅具有特殊含義(作為范圍指示符)。例子:
[a-c] // special meaning: matches 'a', 'b' or 'c'
[ac-] // matches 'a', 'c' or '-'
[-ac] // matches '-', 'a' or 'c'
[a\-c] // matches 'a', '-' or 'c'
毫無疑問,某些正則表達(dá)式實(shí)現(xiàn)可能與我剛剛發(fā)布的有所不同,但是大多數(shù)語言都將遵守這些規(guī)則(至少我使用過的所有語言?。?。正如您所注意到的,在字符類中過度轉(zhuǎn)義字符是安全的:這不會(huì)造成任何危害。兩個(gè)類[+]和[\+]將匹配文字+。恕我直言,第一個(gè)是首選,因?yàn)槲野l(fā)現(xiàn)一個(gè)正則表達(dá)式有太多的轉(zhuǎn)義字符難以閱讀。但是有些人會(huì)不同意我的看法,并發(fā)現(xiàn)通過使用轉(zhuǎn)義符(雖然不是必需的)可以更清楚地知道字面值+是匹配的,而不是貪婪的量詞。
希望這能說明問題。
- 3 回答
- 0 關(guān)注
- 1115 瀏覽
添加回答
舉報(bào)