我學習Java的regex
部分最近,今天我遇到了一個有關使用boundry \\G
的問題,這是我的代碼:如何處理與邊界'\ G'相關的正則表達式?
String input = "abcdec";
System.out.println(String.format("Before :'%s' ; after replace : '%s'", input , input.replaceAll("\\Gx?", "!")));
,同時其打印Before :'abcdec' ; after replace : '!abcdec'
,我不知道爲什麼它打印這是在它與字符串開頭的第一次匹配之後,它用一個char'!'替換了這個地方。 ,但爲什麼它不能再匹配?我認爲正則表達式'\ Gx?'可以匹配每個地方。
我需要你的幫助,每個幫助表示讚賞謝謝..
我搜索了一下,找到了正確的名詞:* zero-length match * [[1](http://docs.oracle.com/javase/tutorial/essential/regex/quant.html),[ 2](http://www.regexguru.com/2008/04/watch-out-for-zero-length-matches/)] – Bergi 2012-07-26 08:33:34
相關,但沒有\ G:[Java正則表達式異常?](http:// stackoverflow.com/q/8604286/1048572),[在正則表達式中的奇怪行爲](http://stackoverflow.com/q/9228509/1048572)和[在Java正則表達式中的零長度匹配](http://stackoverflow.com/q/9906471/1048572) – Bergi 2012-07-26 08:35:25
@Bergi謝謝,但正如你所說,這些不包含'\\ G',但再次感謝你。 – ohyeahchenzai 2012-07-26 08:49:22