Получить подстроку после известной строки до первой необязательной запятой - PullRequest
0 голосов
/ 16 ноября 2018

, пожалуйста, помогите мне построить регулярное выражение (php)

$a = "Вид=Готовый, Литраж=4, Цвет=красный, ";
preg_match('/^.*Вид=(.+),?.*$/', $a, $match);

я вижу руководство, оно не работает.

мне нужно получить "Готовый" из строки, запятая может не быть Спасибо.

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете использовать

$a = "Вид=Готовый, Литраж=4, Цвет=красный, ";
if (preg_match('/Вид=\K[^,]+/u', $a, $match)) {
  echo $match[0]; // => Готовый
}

См. онлайн-демонстрацию PHP

Детали шаблона

  • Вид= - буквенная строка
  • \K - оператор сброса совпадений, который отбрасывает сопоставленный текст так далеко от буфера совпадений
  • [^,]+ - 1 или более символов, отличных от запятой
...