4
String str=",Name=Tom,Age=23,something=something,roll=1,somethng=55,"
Я хочу удалить все эти пары значений из строки, значение которой является числом.Регулярное выражение для удаления определенных шаблонов
Теперь я делаю что-то вроде этого
Pattern p = Pattern.compile(",[^=]*?=([^,]*),");
Matcher m = p.matcher(str);
String result = "";
while (m.find()) {
if (!isNumeric(m.group(1))) {
result += m.group(0);
}
}
System.out.println(result);
Ожидаемый результат является
",Name=Tom,something=something,"
Но теперь я получаю
",Name=Tom,,something=something,"
Пожалуйста, помогите.
Нет необходимости в неохотном квантере. –
@Njay: Он работает как шарм. Большое спасибо sooooo much: D: D –
Я бы использовал регулярное выражение '' (^ |,) [^, =] + = [0-9] + (? =, | $) ". Он защищает от недостатка ведущей запятой, отсутствия конечной запятой и значений типа '', name = Tom, publicKey = 24abf3ced, other = something, "', которые ваше регулярное выражение будет делать в ', name = Tomabf3ced, other = something "' – FrankieTheKneeMan