Заменить шаблон в строке с помощью Java - PullRequest
2 голосов
/ 28 марта 2019

Мне нужно заменить тестовое слово до следующей запятой в строке.
Например, строка "abc test xy, tmy test 1, vks , csb";
Вывод после замены должен быть "abc , tmy, vks,csb".
Удаленоtest, за которым следует любой символ или цифра до запятой.

Я попробовал следующий код, но не сработал.

import java.sql.Timestamp;
import java.time.Instant;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class TESTREPLACE {

    public static void main(String[] args) {
        String str = "abc test   xy, tcs test  1, vks , csb ";

        String regex = " default.+\\,";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        System.out.println(matcher.replaceAll("\\,"));
    }
}

1 Ответ

2 голосов
/ 28 марта 2019

Требования не очень понятны в вашем примере, вам также нужно убирать пробелы после запятых?В любом случае это регулярное выражение соответствует слову test, за которым следует любой символ, за исключением запятой ,: (test[^,]+), использование которого в вашем replaceAll должно помочь.

@Test
public void test() {
    final String input = "abc test xy, tmy test 1, vks , csb";
    final String expected = "abc , tmy , vks , csb";
    final String got = replaceTestWordUpToComma(input);
    assertEquals(expected, got);
}

private String replaceTestWordUpToComma(String input) {
    return input.replaceAll("test[^,]+", "");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...