@I_I

Как улучшить функцию preg_split ?

Помогите улучшить функцию preg_split
Суть такая, есть такой код $pieces = preg_split("/[\s!?]/u", $pizza);
так вот оказалось что символов ! и ? было недостаточно и нужно сделать разделение абсолютно на все символы, кроме букв. Короче, нужно поместить в
preg_split (~!"№;%:?*()_+/,@##$^&*½ и любые другие символы типа сердечек и квадратиков)
Еще хотелось бы поместить вот этот код с js, он очень хорошо разбивает пробелы и удаляет ненужное. Примерно так "пробел текст пробел текст" когда пробел впереди код который внизу понимает что перед пробелом нету текста и это важно, выводя таким обзором что в файле 2 слова а не 3.
(/\n/," ").replace(/\s/gi," ").replace(/\s{2,}/gi," ").replace(/ $/,"").replace(/^ /,"");

Возможно есть другой способ который будет типа preg_split("\n", $pizza) и все.

Есть вот такой символ \w - любая цифра, буква или знак подчеркивания.
Можно было бы добавить его так, чтобы preg_split разделял слова, если стоит все что угодно, кроме любой цифры, буквы или знака подчеркивания, то есть \w, конечно знак подчеркивания тоже бы хотелось убрать.
  • Вопрос задан
  • 2747 просмотров
Решения вопроса 1
kompi
@kompi
nullstack devoops
Подробно читаем про PCRE (PHP):
- \W - Any non-word character
- \s - комбинация [\r\n\t\f ]
Первый и последний пробел можно учесть в регулярке или убрать с помощью trim.
preg_split('/[\W_]/u', trim($pizza), -1, PREG_SPLIT_NO_EMPTY);

PS PREG_SPLIT_NO_EMPTY - обязательно, если не хотите, чтобы в массив попадали пустые элементы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы