我發現this線程,它的用戶之一張貼下面的代碼行:Java的正則表達式中的元字符
String[] digits2 = number.split("(?<=.)");
我諮詢了幾個來源 - 像1和2 -to破譯這是什麼意思的代碼,但我無法弄清楚。任何人都可以解釋split()方法中的參數是什麼意思?
編輯:的人誰,因爲我有同樣的問題,這裏的另一個有用的link
我發現this線程,它的用戶之一張貼下面的代碼行:Java的正則表達式中的元字符
String[] digits2 = number.split("(?<=.)");
我諮詢了幾個來源 - 像1和2 -to破譯這是什麼意思的代碼,但我無法弄清楚。任何人都可以解釋split()方法中的參數是什麼意思?
編輯:的人誰,因爲我有同樣的問題,這裏的另一個有用的link
.split("")
(在一個空串/圖案)將在正則表達式的開始空字符串相匹配。這是一個額外的空字符串字符,這是不可取的。 (?<=.)
是一個零寬度斷言(不消耗任何字符),匹配零寬度空間後跟任何字符(後面是因爲它是倒序)。這將分割每個字符之間的空字符串,但不是第一個字符和字符串開頭之間的空白字符串。
零寬度空間爲在這裏使用錯誤的術語;這是[一個不同的事物](http://en.wikipedia.org/wiki/Zero-width_space)。 – Cairnarvon
@Cairnarvon謝謝你指出這一點...你更喜歡哪一個詞? –
I想要說「性格邊界」,但這也不是很嚴格。老實說,我不確定。 – Cairnarvon
我知道「。」匹配除換行符之外的任何字符,但是在此上下文中「<=」是什麼意思? – Haque1
@ Haque1這是一組元字符,告訴表達式「。」不應該捕獲任何東西。引擎需要看到角色在那裏,但它不應該從流中移除該角色。 – dasblinkenlight
@ Haque1這是一個不尋常的使用lookbehind。更常見的方式是這樣的:'(?<= tag :)「[^」] *「'。該表達式僅在引用字符串前面加上'tag:'字符串。 – dasblinkenlight