Попытка заблокировать имя Пэт с помощью регулярного выражения - PullRequest
0 голосов
/ 19 февраля 2012

Для задания по рубину на рельсах я должен блокировать любого с именем Пат. Я не хочу, чтобы черные имена, такие как Патрик, хотя. Прямо сейчас у меня есть

validates :author, :format => {:without => /pat/i}

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

/pat\W/i

Я не уверен, как сделать так, чтобы он ловил только имя, содержащее Пэт, но не имя с Пэт в нем, например, Патрик. Любая помощь будет оценена.

Ответы [ 3 ]

1 голос
/ 19 февраля 2012

Использовать границы слова :

/ \ bpat \ б / я

0 голосов
/ 19 февраля 2012

Попробуйте это:

/(\s+|^)pat(\s+|$)/i

Соответствует строке с pat, за которой следует любое количество пробельных символов или , строка, заканчивающаяся pat.

0 голосов
/ 19 февраля 2012

Посмотрите на операторы ^ и $.

Rubular - удобный инструмент для проверки.

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