2015-06-09 1 views
0

У меня была строка, подобная «Джон Джон Джеймс Джеймс», где Джон Джон - одно имя, а Джеймс Джеймс - другое имя, как я могу отличить их от имени 2, используя код регулярного выражения?php regex как отличить все имя от 2 имен

Я использую этот код регулярного выражения: ^[a-zA-Z][a-zA-Z ]*$, но он рассматривает все как целое имя, но я этого не хочу.

+1

Это всегда два слова, разделенные пробелом? –

+0

Являются ли длины фиксированными? Как только 2 слова или что-то в этом роде? – vks

+0

нет правила как 2 слова каждое имя – John

ответ

-1

(\S+\s+\S+)\s+(\S+\s+\S+) для простейших случаев: https://regex101.com/r/eQ3oY8/1

Для более сложных комбинаций имен вы должны определить некоторые более строгие правила. Например, строка George Henry Martin Luther King будет трудно разделить, если вы не определите еще несколько правил. Это может быть либо George Henry + Martin Luther King, либо George Henry Martin + Luther King.

+0

Это не более двух имен подряд. Что делать, если в строке больше двух? Что, если вы не знаете, сколько будет в строке? '/ (\ S + \ s + \ S +)/g' работает лучше, чем у вас. – Styphon

Смежные вопросы