2017-02-09 70 views
-2

模式的結尾:([^\|]*)Java的正則表達式消除最後一個特定字符字符串

字符串:

  1. 他們發現,在越南的巨大黃金|中國老撾去年夏天。 | BBCworld.com
  2. 去年夏天他們在越南|中國|老撾找到了這個巨大的黃金。

結果是:他們發現了巨大的黃金在越南

演示:http://regexr.com/3f8hi

目標:

他們發現,在越南的巨大黃金|中國老撾去年夏天。

+0

問:你怎麼知道它是確定刪除「| BBCworld.com」字符串1,但不能刪除「|老撾去年夏天。」從字符串2?在我們回答你的問題之前,你必須回答這個問題。 –

+0

P.S. @WiktorStribiżew它不是重複的,只是措辭不佳而且定義不清。 –

回答

2

使用它是沒有必要的正則表達式的經典案例:

String result = input.substring(0, input.lastIndexOf('|')); 
+0

我會說'indexOf':這個例子說'他們在去年夏天發現了越南|中國|老撾的巨大黃金。 | BBCworld.com'和'他們在去年夏天在越南|中國|老撾找到了巨大的黃金。'結果應該是'他們在越南找到了巨大的黃金',所以這是'|'的第一個索引,而不是最後一個。 – BackSlash

+0

@BackSlash,但*期望的輸出*是「他們在去年夏天發現了越南|中國|老撾的巨大黃金。」 –

+0

哦。所以「結果」就是他所得到的,而「目標」就是他想要達到的目標......我的不好,但是OP可以解釋得更好一點。抱歉! – BackSlash

0

使用$錨,這意味着字符串的結尾:

\|[^|]*$ 
相關問題