Я хочу написать регулярное выражение для включения: букв, цифр и пробелов, но я хочу исключить специальные символы, такие как !'^+%&/()=?_-*£#$ и т. Д.

Я подумал, что могу использовать [a-zA-Z] для букв, [0-9] для цифр и \S для пробелов.

< Сильный > [ A-Za - Z0-9 \ s ]

Но строка, которую я пытаюсь очистить, может содержать буквы вроде é,ü,ğ,i,ç и так далее. Я не хочу, чтобы эти письма были удалены.

Можно ли написать такое регулярное выражение?

0
blab 29 Май 2017 в 01:29

2 ответа

Лучший ответ

Да, это возможно.

  • \p{L} соответствует любому, что является буквой Unicode a-z и такими буквами, как é, ü, ğ, i, ç
  • \d соответствует цифре (равно [0-9])
  • \s соответствует символу пробела, табуляции, возврата каретки, новой строки, вертикальной табуляции или перевода строки

[\p{L}\d\s]+ должен соответствовать одному или нескольким символам, присутствующим в списке

Здесь вы можете увидеть пример:

2
freedev 28 Май 2017 в 22:40

Если вы хотите сделать это не с помощью регулярных выражений, то вы можете сделать это с помощью Apache StringUtils.isAlphanumericSpace (String str)

0
Nitin Prabhu 28 Май 2017 в 22:43