在Java中的正則表達式:解釋這個正則表達式在Java中
'String'.replaceAll("([aeioucgjkqsxyzbfpvwdtmn1234567890])\\1+", "$1")
有人能解釋不同的人物嗎?
在Java中的正則表達式:解釋這個正則表達式在Java中
'String'.replaceAll("([aeioucgjkqsxyzbfpvwdtmn1234567890])\\1+", "$1")
有人能解釋不同的人物嗎?
說明:
[aeioucgjkqsxyzbfpvwdtmn1234567890]
匹配列表中的一個字符。([aeioucgjkqsxyzbfpvwdtmn1234567890])
捕獲char類的組將捕獲該單個字符。\1+
\1
是一個指向組索引1內的字符的指針。在我們的例子中,單個字符被捕獲,因此它指向單個字符。 \1+
指字符的一次或多次出現組索引1.內例如:
aaaa
上述正則表達式將捕獲的第一個字符,並檢查以下的一個或多個字符與第一個被捕獲的角色相同。如果是的話,則整個複製字符由一個單個字符(這是組索引1的內部)代替,即aaaa
由單個a
括號內列出的所有字母將被替換爲$ 1,如果它們之後出現\ 1,這是一個文字反斜槓。加號(+)表示1或更多。
括號內的任何一個或多個字符序列將被替換爲$ 1。
舉例來說,這將刪除你的字符串中的所有這些字符: 的System.out.println(Str.replaceAll( 「([aeioucgjkqsxyzbfpvwdtmn1234567890])\ 1+」, 「」));
替換也許一個正則表達式的教程將是一個很好的第一步?或者對任何在線正則表達式評估者進行一些實驗?有些甚至是圖形化的,有助於將事情分解。 – 2014-09-23 14:39:04
我知道什麼是正則表達式,但我沒有得到它的所有,特別是\\ 1+部分 – Lightvvind 2014-09-23 14:40:27
regular-expressions.info – hjpotter92 2014-09-23 14:40:36