我想删除最后一个标签(或逗号)之前的所有内容。
例如,在这句话中:
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?
我试过了,
" ^(。* \吨+)+"但那不起作用。
答案 0 :(得分:5)
正则表达式是这项工作的错误工具。
只需使用lastIndexOf()
查找上一个,
和/或\t
,然后使用substring()
来删除您要保留的内容。
无论哪种方式,使用正确的Java习语写出来,从长远来看,将更加自我记录并且更易于维护。
答案 1 :(得分:4)
答案 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()));