Я пытаюсь проверить имена, но не знаю, уместно ли использовать это выражение
[A-ZÄËÏÖÜÁÉÍÓÚÂÊÎÔÛÀÈÌÒÙ]
[a-zäÄëËïÏöÖüÜáéíóúáéíóúÁÉÍÓÚÂÊÎÔÛâêîôûàèìòùÀÈÌÒÙ]
+(\s)*
[a-zäÄëËïÏöÖüÜáéíóúáéíóúÁÉÍÓÚÂÊÎÔÛâêîôûàèìòùÀÈÌÒÙ]+
То, что я хочу проверить, например:
- Мария Креста
- Хосе Антонио
В моем регулярном выражении, когда я добираюсь до части (\s)*, я хочу повторить тот же процесс снова, не записывая первое, я не знаю, понимаете ли вы меня. Пример того, что я хочу сделать, будет примерно таким:
[A-ZÄËÏÖÜÁÉÍÓÚÂÊÎÔÛÀÈÌÒÙ]
[a-zäÄëËïÏöÖüÜáéíóúáéíóúÁÉÍÓÚÂÊÎÔÛâêîôûàèìòùÀÈÌÒÙ]
+(\s)*
([a-zäÄëËïÏöÖüÜáéíóúáéíóúÁÉÍÓÚÂÊÎÔÛâêîôûàèìòùÀÈÌÒÙ]
+(\s)*)*
([a-zäÄëËïÏöÖüÜáéíóúáéíóúÁÉÍÓÚÂÊÎÔÛâêîôûàèìòùÀÈÌÒÙ]
+(\s)*)*
Мой ответ основан на более общем вопросе вашего вопроса:
Когда вы хотите повторить одно и то же выражение/блок с некоторым разделителем между частями, обычно используется следующее:
Где:
Например, в вашем случае это могло быть что-то вроде этого (это будет немного по-другому, потому что вы хотите, чтобы первая была заглавной)
Где:
Кроме того, вероятно, было бы неплохо сгруппировать все это между началом и концом строки
^$
, чтобы не найти «Uan perez» в «jUan perez».Альтернатива:
Как вы увидите, хотя предыдущий метод является наиболее распространенным, он повторяет выражение (только) один раз.
Есть и другие альтернативы, чтобы не повторять выражение, например тот, который я представляю ниже, хотя у него есть недостаток, заключающийся в том, что вы не сможете контролировать количество повторений (количество имен и фамилий). Я также оставляю это как любопытство или в случае, если это может быть полезно для вас.
Он будет состоять из:
Итак, в случае имен, начинающихся с заглавных букв, это будет примерно так (на этот раз для простоты я буду использовать РАЗДЕЛИТЕЛЬ = пробел и Допустимые символы =
a-z
)^(?!.* (?: |$))[A-Z][a-z ]+$
Если вам все равно, есть ли два пробела подряд, это будет проще
Пример:
^(?!.* $)[A-Z][a-z ]+$
Альтернатива с переменными:
Конечно, помните, что в подавляющем большинстве языков программирования вы можете хранить фрагменты регулярных выражений в переменной, а затем использовать переменные в регулярном выражении, чтобы можно было легко повторять одни и те же фрагменты.