2013-02-18 36 views
0

我有一個簡單的問題。 我想選擇一個或多個不與特定單詞相交的字符(開始和結束短語)。如何選擇一個或多個不與特定單詞相交的字符

例如:我想從下一個文本中選擇1234,efghijabcklmn。

String now = "abcd"; 
String next = "1234abcdefghijabcklmn"; 

我試圖^ ABCD,^(ABCD),[^一個] [^ B] [^ C] [^ d]沒有任何工程。我知道這可以通過分割和標記來完成。但我想通過正則表達式。

回答

3

我知道這可以通過分割和標記來完成。但我想要它通過正則表達式 。

那麼,String#split(regex)只需要一個regex作爲參數。所以,爲什麼不使用它,因爲這個問題是拆分的理想候選。

String now = "abcd"; 
String next = "1234abcdefghijabcklmn"; 

System.out.println(Arrays.toString(next.split(Pattern.quote(now)))); 
+0

100%同意!它可以用來完成工作。但我想學習如何編寫正則表達式來完成它。我的目的不是要分裂它的結果。但我想學習如何寫在正則表達式。如果我們可以在正則表達式中選擇一個匹配的單詞。肯定會有相反的情況嗎? – namalfernandolk 2013-02-18 09:07:52

+2

@NamalFernando。不,沒有辦法像這樣使用正則表達式。你無法跳過一系列字符。最好的做法是使用如下模式:'(。*?)abcd(。*)',並返回組1和組2。 – 2013-02-18 09:15:34

+0

好的。非常感謝Rohit。 – namalfernandolk 2013-02-18 10:45:19

2

剛剛拆分ABCD ...

System.out.println(Arrays.toString("1234abcdefghijabcklmn".split("abcd"))); 
+0

100%同意!它可以用來完成工作。但我想學習如何編寫正則表達式來完成它。我的目的不是要分裂它的結果。但我想學習如何寫在正則表達式。如果我們可以在正則表達式中選擇一個匹配的單詞。肯定會有相反的情況嗎? – namalfernandolk 2013-02-18 09:08:39

相關問題