Шаблон для ulr (ключ = значение и ключ = значение) регулярное выражение Java - PullRequest
0 голосов
/ 31 января 2019

Хотите знать, как написать правильное регулярное выражение для моего URL, чтобы оно соответствовало: key = value.2 пары ключ = значение разделены символом «&».Удалить ключ, если значение пусто или равно нулю

Спасибо

1 Ответ

0 голосов
/ 31 января 2019

Если вы хотите удалить пустые параметры из строки запроса, вы можете использовать это регулярное выражение \w+=[^&]+ для сопоставления только тех пар ключ-значение, чья часть значения не пуста.Например, если у вас есть следующая строка,

key1=value1&key2=value2&key3=&key4=value4

Затем сопоставьте только URL-адреса, используя приведенное выше регулярное выражение, и отфильтруйте остальные.Этот код Java должен вам помочь,

String s = "key1=value1&key2=value2&key3=&key4=value4";
Pattern p = Pattern.compile("\\w+=[^&]+");
Matcher m = p.matcher(s);
StringBuilder sb = new StringBuilder();
while(m.find()) {
    sb.append(m.group()).append("&");
}
System.out.println(sb.substring(0,sb.length()-1));

Печатает это, у которого значение key3 удалено, поскольку оно было пустым,

key1=value1&key2=value2&key4=value4

Используя потоки Java8, вы можете использовать этот один код лайнера для достижения,

String s = "key1=value1&key2=value2&key3=&key4=value4";
String cleaned = Arrays.stream(s.split("&")).filter(x -> Pattern.matches("\\w+=[^&]+", x)).collect(Collectors.joining("&"));
System.out.println(cleaned);

Отпечатки,

key1=value1&key2=value2&key4=value4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...