你们能帮帮我吗??
我这里有一个字符串:
a$20=A.createVar("/LIST/S_UNB/C_S001/D_0001/*var", a$1, this);
现在我想用最后一个'/'之后出现的值替换“”中的字符串。
在这里我希望结果是
a$20=A.createVar("*var", a$1, this);
我正在尝试使用尽可能少的对象,我的正则表达式看起来像这样
\"([^\"]*)\"
这个对吗?
假设引号不是表达式的一部分,请使用
[^/]+$
$ 表示字符串的结尾,这将使它只返回最后一个'/'之后的值。
您可以使用以下代码:
String s = "a$20=A.createVar(\"/LIST/S_UNB/C_S001/D_0001/*var\", a$1, this);";
// extract text between ""
String sub = s.replaceAll("^[^\"]*\"([^\"]*)\".*$", "$1");
// find last index of /
int i = sub.lastIndexOf('/');
// replace content between "" by token after last /
String repl = s.replaceFirst("\"[^\"]*\"", '"' + sub.substring(i+1) + '"');
//=> a$20=A.createVar("*var", a$1, this);