我有一个这样的键值参数:
sign="aaaabbbb="
我想获取参数名sign
和值"aaaabbb="
(带引号)
我想我可以用 =
拆分字符串以获得数组的第一个元素,即参数名称,然后执行 String.replaceAll()
删除sign=
获取值。无论如何,这是我的示例代码:
public class TestStringReplace {
public static void main(String[] argvs){
String s = "sign=\"aaaabbbb=\"";
String[] ss = s.split("=");
String value = s.replaceAll("\\[^=]+=","");
//EDIT: s.replaceAll("[^=]+=","") will not do the job either.
System.out.println(ss[0]);
System.out.println(value);
}
}
但输出显示:
sign
sign="aaaabbbb="
为什么 \\[^=]+=
不匹配 sign=
并在此处用空字符串替换它?相当新的 Java 正则表达式,需要一些帮助。
提前致谢。
最佳答案
在 Java 中,您可以使用以下内容:
String str = "sign=\"aaaabbbb=\"";
String var1 = str.substring(0, str.indexOf('='));
String var2 = str.substring(str.indexOf('=')+1);
System.out.println("var1="+var1+", var2="+var2);
以上将有以下输出:
var1=sign, var2="aaaabbbb="
关于java - String#replaceAll() 替换 *除 =* 组之外的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30487169/