Ответ 1
Вероятно, более сжатое регулярное выражение, но это, безусловно, будет работать:
string.replaceAll("[^a-zA-Z0-9]", "");
Я хотел бы удалить все, кроме символов a-z, A-Z и 0-9 из строки, поэтому мне нужно создать регулярное выражение для Java string.replaceAll(regex, "");
Старая строка будет выглядеть так:
MAX EUK_1334-PP/B+
Новая строка должна выглядеть так:
MAXEUK134PPB
Вероятно, более сжатое регулярное выражение, но это, безусловно, будет работать:
string.replaceAll("[^a-zA-Z0-9]", "");
string.replaceAll("[^a-zA-Z0-9]+", "");
String test = "MAX EUK_1334-PP/B+";
test = test.replaceAll("[\\W_]", "");
System.out.println(test + "\n");
Распечатанный результат:
MAXEUK1334PPB
Некоторые забывают "_" 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 цента.
Вы можете использовать значения 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)
).