Java 在url字符串上应用正则表达式
我有一个这样的url 我想在对第三方系统进行rest调用之前应用正则表达式。该正则表达式应该删除所有没有值的键。i、 e从这个给定的url中,我的正则表达式应该删除“&isStudent”、“&stream”和“&courseType”,剩下的是Java 在url字符串上应用正则表达式,java,regex,Java,Regex,我有一个这样的url 我想在对第三方系统进行rest调用之前应用正则表达式。该正则表达式应该删除所有没有值的键。i、 e从这个给定的url中,我的正则表达式应该删除“&isStudent”、“&stream”和“&courseType”,剩下的是 有指针吗?我不能在一个正则表达式中完成,因为仅键参数的数量是可变的。但是我可以用这样一个简短的程序来做 public class Playground { public static void main(String[] args) {
有指针吗?我不能在一个正则表达式中完成,因为仅键参数的数量是可变的。但是我可以用这样一个简短的程序来做
public class Playground {
public static void main(String[] args) {
String testInput = "http://abc-xyz.com/AppName/service?id=1234&isStudent&stream&shouldUpdateRecord=Y&courseType";
String[] tokens = testInput.split("\\?");
String urlPrefix = tokens[0];
String paramString = tokens[1];
String[] params = paramString.split("&");
StringBuilder sb = new StringBuilder();
sb.append(urlPrefix + "?");
String keyValueRegex = "(\\w+)=(\\w+)";
String amp = ""; // first time special
for (String param : params) {
if (param.matches(keyValueRegex)) {
sb.append(amp + param);
amp = "&"; // second time and onwards
}
}
System.out.println(sb.toString());
}
}
该程序的输出如下:
http://abc-xyz.com/AppName/service?id=1234&shouldUpdateRecord=Y