java - String#replaceAll() 替换 *除 =* 组之外的任何内容

标签 java regex string replace replaceall

我有一个这样的键值参数:

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/

相关文章:

python - 如何不将整个单词 "king"匹配到 "king?"?

javascript - 为什么将 str 数字添加到自身后会将其变成数字?

string - 在 scala 中分割字符串

java - 需要帮助访问 Jar 文件中的数据文件

java - java报错包不存在

c# - 从字符串中提取可变数量的 token 对到一对数组

string - Swift仅从字符串中删除尾随空格

java - 通常,当java返回 "The parameter is incorrect"时,这意味着什么

Java - Spring AspectJ AfterThrowing

Java 正则表达式。在长文本中仅查找一个匹配项