正则表达式=后跟任何字符串后跟&在Java中

时间:2014-05-25 14:11:29

标签: java regex string

所以我想替换=的所有序列(后跟任何字母序列和其他字符)&

这是Java。

我正在考虑使用

originalString.replaceAll(regex, stringReplacement)

我现在遇到了问题。 replaceAll方法正在替换字符串,如下所示:

如果原始字符串是

username = dka & password = hoho & id= 9283 & pid = 3784;

声明replaceAll("=.*&", "=HELLO&")给出:

username =HELLO& pid = 3784

我想要的是

username =HELLO& password =HELLO& id =HELLO& pid = 3784;

replaceAll似乎不起作用

1 个答案:

答案 0 :(得分:2)

您的正则表达式通配符匹配正在使用贪婪搜索。通过将?附加到其上来使其变得非贪婪,以便它尽可能少地匹配字符:

String test = " username = dka & password = hoho & id= 9283 & pid = 3784; ";
System.out.println(test.replaceAll("=.*?&", "=HELLO&"));
//prints out: ' username =HELLO& password =HELLO& id=HELLO& pid = 3784; '