Regex в направляющих для соответствия [\w] и “-”, но не числа

Я хочу записать регулярное выражение для проверки Имени. Регулярное выражение должно включать все алфавиты (латинские/французские/немецкие символы и т.д.). Однако я хочу исключить числа из него и также позволить -. Так в основном это \w (минус) числа (плюс) -.

Помогите.

5
задан Tim Pietzcker 2 July 2010 в 07:38
поделиться

3 ответа

^[\p{L}-]+$

\ p {L} соответствует любой букве из любого языка .

6
ответ дан 13 December 2019 в 19:20
поделиться

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

^[\D-]+$

Вы можете проверить эту постоянную ссылку здесь:

http://rubular.com/r/VrAIB4TkwJ

Я сделал это вики сообщества, чтобы каждый мог попробовать и при необходимости улучшить регулярное выражение.

Надеюсь, это поможет. Приветствую :)

0
ответ дан 13 December 2019 в 19:20
поделиться

Насколько мне известно, Ruby не поддерживает свойства Unicode (по крайней мере, до версии 1.8), поэтому вам может потребоваться

^(?:[^\W\d_]|-)+$

Explanation: [^ \ W \ d _] соответствует любой букве (буквально это означает «Сопоставить символ, не являющийся буквенно-цифровым символом, цифрой или знаком подчеркивания»). В этом случае двойной минус - правильный выбор. Поскольку мы используем инвертированный символьный класс, нам нужно разрешить - путем чередования.

Предостережение: Из regular-expressions.info похоже, что Ruby сопоставляет символы ASCII только с сокращением \ w , поэтому это регулярное выражение может работать не так, как задумано. У меня здесь не установлен Ruby, но на rubular.com это регулярное выражение работает правильно.

Альтернативное решение

^[[:alpha:]-]+$

должно соответствовать не-ASCII символам в соответствии с regular-expressions.info и RegexBuddy, но на rubular.com это не работает.

5
ответ дан 13 December 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: