preg_match_all('~[,()^/*+-]~', $e, $m)
и preg_split("/\,|\(|\)|\^|\/|\*|\-|\+/",$e);
разделяет мне строку в массив по определенным словам. Мне надо разделять строку по словам, отличным от ,()^/*-+
и не отличным от них
например: pi*t+(a/c)
в array(array('*','+','/'),array(pi,t,a,c))
Вместо разбиения строки, необходимо найти все совпадения искомых символов с помощью preg_match_all
:
// Всё вместе
$e = "a+d+c/t-(a*r)";
preg_match_all('~[^,()^/*+-]+|[,()^/*+-]~', $e, $m);
print_r($m[0]);
// Только все "слова"
preg_match_all('~[^,()^/*+-]+~', $e, $m1);
print_r($m1[0]);
// Только все "символы"
preg_match_all('~[,()^/*+-]~', $e, $m2);
print_r($m2[0]);
См. демо онлайн
Так как в качестве разделителей используется ~
, обратный слеш экранировать /
не нужно. Так как -
помещен в конец символьного класса его экранировать тоже не надо. ^
не в начальной позиции в символьном классе тоже экранировать не надо. ,()*+
в символьных классах трактуются буквально всегда.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как мне передать свои данные в очередь Queue что бы при обработке очереди в методе handle() - производились операции над ними? Пробую кидать как...
Помогите распарсить строку по датеПоступает текст где в начале каждого сообщения указана дата
Есть форма, после ввода в форму адрес сайта выполняется кодЯ хочу узнать размер файла в браузере через filesize()
Господа, не работает перенос строки в php модуле mailОн тупо пишет в одну строчку, выдавая тег переноса в теле письма