所以我想替换=的所有序列(后跟任何字母序列和其他字符)&
这是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
似乎不起作用
答案 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; '