删除最后一个逗号前的所有内容

时间:2012-03-21 11:22:24

标签: java regex

我想删除最后一个标签(或逗号)之前的所有内容。

例如,在这句话中:

  Hoe treedt een调查了Nederlands Openluchtmuseum,alom geassocieerd遇到了ambacht en traditie,buiten zijn grenzen op zoek naar vernieuwing?

应该是

  

naar vernieuwing?

     

Ik heb ruim 6 weken geleden een boek besteld en ik wacht nog steeds,enig idee hoe lang dit wachten nog gaat duren?

应该是

  

enig idee hoe lang dit wachten nog gaat duren?

我试过了,

" ^(。* \吨+)+"但那不起作用。

4 个答案:

答案 0 :(得分:5)

正则表达式是这项工作的错误工具。

只需使用lastIndexOf()查找上一个,和/或\t,然后使用substring()来删除您要保留的内容。

无论哪种方式,使用正确的Java习语写出来,从长远来看,将更加自我记录并且更易于维护。

答案 1 :(得分:4)

试试这个

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

并替换为$1

here on Regexr

答案 2 :(得分:0)

不要将其视为在最后一个逗号之前删除部分,而是将其视为在最后一个逗号后提取部分。这可以通过以下正则表达式来实现:

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

说明:

  • (?:[,\t]|^)可以匹配,,制表符或字符串的开头。 (不捕获。)
  • ([^,\t]*)会捕获其后面不是,或标签的任何符号。
  • $将其锚定在字符串的末尾。

总的来说,这应该可以胜任。

答案 3 :(得分:-1)

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

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