Изменить Я разрешаю мою проблему.
Это решение
$string = "Hello my Name is Paloppa. Im' 20 And? Hello! Words I Io Man";
// Word boundary before the first uppercase letter, followed by any alphanumeric character
preg_match_all( '/(?<!^)\b[A-Z][a-z]{1,}\b(?!["!?.\\\'])/', $string, $matches);
print_r( $matches[0] );
Теперь у меня есть еще один вопрос
Каждый раз, когда он находит слово, слово вставляется в позицию массива.
Если у меня есть эта фраза «Как тебя зовут и фамилия? Мое имя и фамилия» - это Паоло Селио и Серия А Иим 25 Спасибо Бро Чао »
это мой код
$string = "Whats is your Name and Surname? My Name And Surname' is Paolo Celio and Serie A Iim 25 Thanksbro Bro Ciao";
// Word boundary before the first uppercase letter, followed by any alphanumeric character
preg_match_all( '/(?<!^)\b([A-Z][a-z]+ +){1,}\b(?!["!?.\\\'])/', $string, $matches);
print_r( $matches[0] );
вывод следующий
Array (
[0] => Name
[1] => Name And Surname
[2] => Paolo Celio
[3] => Serie
[4] => Iim
[5] => Thanksbro Bro
)
Почему он не присоединяется к Серии А, а не печатает А?
Почему последнее слово не в выводе?
Спасибо
EDIT
Я решаю свою проблему, это мой REGEX
preg_match_all('/(?<!^)\b[A-Z]([a-z0-9A-Z]| [A-Z]){1,}\b(?!["!?.\\\'])/', $string, $matches);