Java regEx在最后一次引用之前获取子字符串

时间:2013-10-25 11:23:08

标签: java regex

我有一个刺痛:

String text = "\"Alaska \"adaa\" asdas\" at [2013-10-298 13:36.062];";

我需要获得子串

//"Alaska "adaa" asdas"
String text = "\"Alaska \"adaa\" asdas\"";

如何?

3 个答案:

答案 0 :(得分:2)

为什么不使用lastIndexOf

text = text.substring(0, text.lastIndexOf("\"") + 1);

答案 1 :(得分:1)

试试这个:

text.replace("\"[^\"]*$", "\"")

答案 2 :(得分:1)

一种方法是用空字符串替换最后一个引号后的所有内容:

test = test.replaceAll("(?<=\")[^\"]*$", "");
//                      ^^^^^^^ ^^^  ^
//                         |     |   |
// Preceded by a quote ----+     |   |
// Does not contain a quote -----+   |
// Goes all the way to the end ------+