Подтвердить что ты не робот

Регулярное выражение для удаления всего, кроме символов и цифр.

Я хотел бы удалить все, кроме символов a-z, A-Z и 0-9 из строки, поэтому мне нужно создать регулярное выражение для Java string.replaceAll(regex, "");

Старая строка будет выглядеть так:

MAX EUK_1334-PP/B+

Новая строка должна выглядеть так:

MAXEUK134PPB
4b9b3361

Ответ 1

Вероятно, более сжатое регулярное выражение, но это, безусловно, будет работать:

string.replaceAll("[^a-zA-Z0-9]", "");

Ответ 2

string.replaceAll("[^a-zA-Z0-9]+", "");

Ответ 3

String test = "MAX EUK_1334-PP/B+";     
test = test.replaceAll("[\\W_]", "");
System.out.println(test + "\n");

Распечатанный результат:

MAXEUK1334PPB

Ответ 4

Некоторые забывают "_" char:

String regex = "[_\\W]";

public class RegexFun2 {
   public static void main(String[] args) {
      String test = "MAX EUK_1334-PP/B+";

      String regex = "[_\\W]";

      String result = test.replaceAll(regex, "");
      System.out.println(result);
   }
}

Но все же я думаю, что ОП обманывает себя, не демонстрируя, что он сначала попытался и опубликовал свою попытку в своем первоначальном вопросе. Только мои 2 цента.

Ответ 5

Вы можете использовать значения ASCII символов:

while(!end of string){
    if(valueOfChar is between 48-57 or 65-90 or 97-122)
          write it to your string
}

Это может помочь, но я не знаю, должен ли вы писать код с помощью replaceAll. Оба replaceAll, и этот код работает с одинаковой производительностью (O(n)).