3 回答

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

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