我通过将request.queryString()描述为来自url的查询字符串 -
supplyId=123456789b&search=true
Run Code Online (Sandbox Code Playgroud)
我想用新值替换"supplyId"的值."supplyId"可以位于查询字符串中的任何位置.这可能是什么正则表达式?
我实际上不会使用正则表达式,但字符串操作.在URL中搜索"supplyId ="的位置,然后抓取所有内容直到字符串结尾或"&",以先到者为准.
如果您必须使用正则表达式,请尝试以下方法之一:
(?<=supplyId=)[^&]+
supplyId=([^&]+)
Run Code Online (Sandbox Code Playgroud)
确保区分大小写.如果使用第二个模式,则所需的值将位于捕获组1中.
我认为你应该能够做这样的事情:
String queryString = "supplyId=123456789b&search=true";
String anyStringIlike = "someValueIlike";
String newQueryString = queryString.replaceAll("supplyId=[^&]+","supplyId=" + anyStringIlike);
System.out.println(queryString);
System.out.println(newQueryString);
Run Code Online (Sandbox Code Playgroud)
这应该打印:
SupplyId=123456789b&search=true
SupplyId=someValueIlike&search=true