Необходимо выделить все слова в строке.
Ключ к решению этой задачи в том, чтобы аккуратно определить, что именно мы понимаем под словом. Сформулировав это определение, используйте специальные символьные типы для создания регулярного выражения:
/\S+/ // все, что не является пробельным символом
/[A Z'-]+/i // все буквы в нижнем и верхнем регистре, апострофы и дефисы
Простой вопрос «что же такое слово?» неожиданно оказывается довольно сложным. Хотя регулярные выражения, совместимые с Perl,
имеют встроенный символьный тип для слова, определяемый символами \w, важно точно понимать, как определяет слово PHP. В противном
случае полученный результат может оказаться для вас неожиданным.
Обычно, поскольку это непосредственно следует из определения слова
в Perl, символ \w подразумевает все буквы, цифры и символ подчеркивания; это значит, что a_z словом является, а адрес электронной почты, php@example.com, – нет.
В этом рецепте мы рассматриваем только английские слова, но в других языках используется отличный алфавит. Поскольку регулярные
выражения диалекта Perl учитывают текущие указания национальной настройки, то изменение в национальной конфигурации может
сменить определение буквы, изменяя, таким образом, и определение
слова.
Для борьбы с этим можно явным образом перечислить символы, принадлежащие словам, внутри символьного класса. Нестандартные символы можно добавить при помощи кодировки \ddd, где ddd представляет восьмеричный код символа.