PankovAlxndr
@PankovAlxndr
Fullstack web developer

Как написать регулярное выражение?

Здравствуйте, есть строки типа
1) клиент: краеугольный менеджер: желтый цвет
2) клиент: круглый
3) менеджер: чебурек

те. маска вида клиент: {{что-то}} менеджер: {{что-то}} причем что клиента, что менеджера может не быть..
хочу написать регулярное выражение, чтобы применив его, я получал {{что-то}}

$text = 'клиент: красный менеджер: кек';
$pattern = '/клиент: ?<client>(.*) менеджер: ?<namager>(.*)|клиент: (?<client>.*)|менеджер: (?<namager>.*)/';
preg_match_all($pattern, $text, $matches);
var_dump($matches);


вот песочница https://regex101.com/r/ekITZL/1

Подскажите пожалуйста
  • Вопрос задан
  • 195 просмотров
Решения вопроса 2
@dodo512
$text = 'клиент: краеугольный менеджер: желтый цвет';
$pattern = '/(клиент|менеджер):\h*(.*?)\h*(?=$|клиент:|менеджер:)/';
preg_match_all($pattern, $text, $matches);
$result = array_combine($matches[1], $matches[2]);
var_dump($result);
Ответ написан
@IS-Builder
~ PHP-8 & REGEXP - This is a really powerful kit ~
Пригласить эксперта
Ваш ответ на вопрос

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

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