2012-03-21 120 views
1

之前,我想刪除最後一個選項卡(或逗號)之前的一切一切。刪除最後一個逗號

例如,在這樣的句子:

如何進入一個已經建立的機構像荷蘭露天博物館,具有工藝和傳統邊界以外尋求續約廣泛關聯?

肩峯是

創新?

我訂購了超過六週前一本書,我仍然在等待,任何想法的等待多久會持續下去?

肩峯是

任何想法的等待多久會持續下去?

我想這一點,

「^(。* \ T +)+」 那可是不行的。

回答

4

試試這個

^.*?([^\t,]*)$ 

$1

更換看到它here on Regexr

+0

大答案@stema – 2012-06-19 13:05:37

5

正則表達式是這個職位的錯誤的工具。

只需使用lastIndexOf()找到最後,和/或\t,然後使用substring()來砍掉你想保留什麼。

無論哪種方式,寫了這一點,使用正確的Java成語,將更多的自我記錄,並從長遠來看,更易於維護。

-1
String s1 = "asdfasdadfsdf,asdfasd,fasd,fasd,fasdf"; 

      s1.lastIndexOf(","); 
      System.out.println(s1.substring(s1.lastIndexOf(",")+1,s1.length())); 
0

而不是將其作爲思維的最後一個逗號之前刪除的部分,你可以把它作爲最後一個逗號後的提取部分。這可以用下面的正則表達式來實現:

(?:[,\t]|^)([^,\t]*)$ 

說明:

  • (?:[,\t]|^)任一相匹配的,,製表符或字符串的開始。 (沒有抓住。)
  • ([^,\t]*)捕捉跟它,這不是一個,或標籤。
  • $它錨字符串的結尾任何符號。

總的來說這個肩峯做的工作。