sseage2 Ответов: 1

Регулярные выражения позволяют [ ] * ? 'macdon etc в тексте фамилии


Я думаю, что у меня есть большая часть шаблона. Но нужна помощь, позволяющая [квадратные скобки].

Я хочу, чтобы шаблон для фамилий был разрешен, если у них есть * или ? или или [] или MACD или СТ или Джим О'Брайен или сочетание любых из них.

Пример: О'Брайен или Сент-Джеймс, или О'Брайен*Н, или С* Джеймс, или О'Брайен*Н? или St Ja*mes? или [О'Брайен?] или [Сент-Эймс?]

Я хочу использовать это в форме G

Спасибо

Что я уже пробовал:

\w+?[']?[A-Za-z|*|?]{0,20}\s?[a-z A-Z|*|?]{0,20}

F-ES Sitecore

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

1 Ответов

Рейтинг:
2

OriginalGriff

Ваше регулярное выражение не "допускает" кавычек: оно требует оно.

\w+?[']
Говорит:
Alphanumeric, one or more repetitions, as few as possible; followed by one character in this class: (quote only)
перед продолжением.
Так что он будет соответствовать
O'
S'
aaaaaa'
Но никогда не будет совпадать
StJames
потому что цитата отсутствует.
Кроме того, добавление '|' в спецификацию класса символов не действует как "или", А добавляет символ '|' в список совпадений.

Я думаю, что вы здесь немного переусердствуете: английские фамилии могут содержать широкий спектр глупостей, и, вероятно, лучше просто сказать "здесь все разрешено", а не пытаться потратить слишком много времени на жесткую проверку этого, так как вы обязательно кого-то забудете. Например, девичья фамилия моей жены была "Хендерсон-Аллен", что не было бы разрешено вашей системой, и есть много других странностей, которые вы, вероятно, раздражаете людей, отвергая, если вы не очень осторожны.