正则表达式替换查询参数中的值

Sau*_*abh 4 java regex

我通过将request.queryString()描述为来自url的查询字符串 -

supplyId=123456789b&search=true
Run Code Online (Sandbox Code Playgroud)

我想用新值替换"supplyId"的值."supplyId"可以位于查询字符串中的任何位置.这可能是什么正则表达式?

Jus*_*gan 6

我实际上不会使用正则表达式,但字符串操作.在URL中搜索"supplyId ="的位置,然后抓取所有内容直到字符串结尾或"&",以先到者为准.

如果您必须使用正则表达式,请尝试以下方法之一:

(?<=supplyId=)[^&]+

supplyId=([^&]+)
Run Code Online (Sandbox Code Playgroud)

确保区分大小写.如果使用第二个模式,则所需的值将位于捕获组1中.


npi*_*nti 5

我认为你应该能够做这样的事情:

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