任何人都可以將這個正則表達式精確/翻譯成英文嗎?正則表達式中的元字符和括號
謝謝。
var g = "123456".match(/(.)(.)/);
我已經注意到,輸出如下所示:
12,1,2
,我知道點意味着除了新行的任何字符。但是這實際上是做什麼的?
任何人都可以將這個正則表達式精確/翻譯成英文嗎?正則表達式中的元字符和括號
謝謝。
var g = "123456".match(/(.)(.)/);
我已經注意到,輸出如下所示:
12,1,2
,我知道點意味着除了新行的任何字符。但是這實際上是做什麼的?
一對括號(沒有?作爲第一個字符,表示其他行爲)會將內容捕獲到一個組中。
在您的示例中,數組中的第一項是整個匹配項,後續項是任何組匹配項。
如果你的代碼是類似的東西可能會更清楚:
var g = "123456".match(/.(.).(.)./);
這將匹配5個字符,將第二和分別第四到組1和2,所以輸出12345,2,4
如果要純粹分組而不捕獲內容,請使用(?:...)
語法,?:
部分指示未捕獲組。 (有各種雜七雜八組的東西,比如向前看符號和其他fun stuff。)
讓我知道,如果這是明確的,或將進一步解釋的幫助?
謝謝你的解釋。 – 2010-06-22 00:05:26
它尋找兩個字符 - 任何字符,因爲點 - 和'捕捉'他們,以便您可以查找整個匹配的字符串,併爲每個子字符串(捕獲)以及。
我不知道,但它讓我緊張和出汗! – 2010-06-22 01:07:05