Регулярное удаление лишних символов - PullRequest
1 голос
/ 06 октября 2011

Я использую этот шаблон [^a-z0-9+\ ,#\-.] для фильтрации тегов перед сохранением их в моей базе данных.

Работает с нежелательным побочным эффектом;он удаляет акценты: instalação становится instalao

Есть идеи, как сохранить акценты без изменений, придерживаясь шаблона?

Я использую ColdFusion, поэтому я предполагаю, что он основан на JavaRegex, но я могу ошибаться.

Мое намерение состоит в том, чтобы разрешить буквы (с акцентами), от 0 до 9 арабских чисел, точек и хэшей.

Ответы [ 3 ]

5 голосов
/ 06 октября 2011

Согласно документация \w соответствует любой (Unicode) букве, цифре, но также подчеркиванию. Если вы не хотите подчеркивания, вы можете сделать это:

[^[:alpha:]0-9#.-]

, где [:alpha:] соответствует любой (Unicode) букве. Если вы хотите сопоставить цифры вне диапазона 0-9, попробуйте:

[^[:alnum:]##.-]

Обратите внимание, что дополнительный хеш для экранирования собственных тегов ColdFusion, в противном случае это приведет к некорректно сформированному тегу / ошибке переменной.

2 голосов
/ 06 октября 2011

Использование

[^\w]

\ w соответствует любому символу слова.В этом случае все несловарные символы.или

\W

, чтобы соответствовать всем несловесным символам.

2 голосов
/ 06 октября 2011

Вы пробовали классы персонажей? \ w соответствует буквам, цифрам и символам подчеркивания и может совпадать только с ударением, хотя я точно не знаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...