-2

你们能帮帮我吗??

我这里有一个字符串:

a$20=A.createVar("/LIST/S_UNB/C_S001/D_0001/*var", a$1, this);

现在我想用最后一个'/'之后出现的值替换“”中的字符串。

在这里我希望结果是

a$20=A.createVar("*var", a$1, this);

我正在尝试使用尽可能少的对象,我的正则表达式看起来像这样

\"([^\"]*)\"

这个对吗?

4

2 回答 2

0

假设引号不是表达式的一部分,请使用

[^/]+$

$ 表示字符串的结尾,这将使它只返回最后一个'/'之后的值。

于 2013-09-18T19:31:53.527 回答
0

您可以使用以下代码:

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);
于 2013-09-18T19:47:08.957 回答