пытаясь сопоставить названия имен .. или не совпадают в зависимости от обстоятельств - PullRequest
1 голос
/ 20 июня 2011

Я пытаюсь вернуть несоответствие, если человек вводит заголовок в поле ввода, которое я настроил ..

То, что у меня пока есть:

^\s*(?!Dr|Mr|Mrs|Miss|Ms).*?$

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

У кого-нибудь есть идеи, как мне это сделать?

1 Ответ

3 голосов
/ 20 июня 2011

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

^\s*(?!(?:Dr|Mr|Mrs|Miss|Ms)\b).*?$

См. здесь на Regexr

Надеюсь, я вас правильно понял. Эта граница слова \b гарантирует, что после вашего заголовка есть не состоящий из слов символ, чтобы он не игнорировал такие вещи, как Drake.

(?:) - это группа без захвата, то есть материал из вашего списка не помещается в переменную как результат, как это сделала бы обычная группа ().

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