Фильтрация строки нежелательных символов в Java - PullRequest
3 голосов
/ 30 ноября 2010

Я перебираю сотни записей данных, большинство из которых действительны в соответствии с моими правилами, но есть некоторые специальные символы или нежелательные пробелы, которые необходимо отфильтровать перед использованием записи.

Я хочу только * 1003Допускаются символы * и ,, а также цифры и буквы.Никаких других специальных символов.Могут быть отдельные пробелы, но ТОЛЬКО после , для разделения данных.

Я вызываю метод фильтра внутри цикла:

private String filterText(String textToBeFiltered) {
    String filteredText = null;

    // Remove all chars apart from = and , with whitespace only allowed
    // after the ,

    return filteredText;
}

Я совершенно новичок в regex, но изучал уроки и хотел бы получить любые идеи.

Спасибо!

Фрэнк

1 Ответ

7 голосов
/ 30 ноября 2010

Вы можете использовать метод replaceAll как:

input = input.replaceAll("[^=,\\da-zA-Z\\s]|(?<!,)\\s","");

Ideone Link

Используемое регулярное выражение: [^=,\\da-zA-Z\\s]|(?<!,)\\sчто означает:

  • заменить любой символ, кроме =, , или любую цифру, любую букву или любой не пробел, на "", эффективно удалив его.
  • Также удалите все пробелы, но только если ему не предшествует ,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...