Есть строка Покупка паетов: Ntv_56°E, Xtra TV 4W на сумму 0.066667 $
Как получить только Ntv_56°E, Xtra TV 4W
, учитывая что строка может быть и такой: Покупка паетов: Ntv_56°E на сумму 0.066667 $
Буду благодарен за помощь.
Нужно искать символ :
, за которым следует пробел, и далее - любая последовательность любых символов, отличных от русских букв. Для этой задачи я составил шаблон (?<=:\s)[^а-я]+(?=\s)
, и теперь опишу его составляющие.
С помощью позитивной ретроспективной проверки (?<= )
выполняется поиск позиции, слева от которой находится символ :
, за которым следует пробел (обозначены стрелками ^
):
(?<=:\s)
^^^
С помощью символьного класса [ ]
и метасимвола ^
(который внутри символьного класса обозначает отрицание) выполняется поиск символов, которые не совпадают с диапазоном символов от а
до я
включительно. Иначе говоря, совпадения будут найдены для любых символов, кроме букв русского алфавита. Квантификатор +
указывает на поиск одного или более таких символов. Иначе говоря, поиск будет успешным, если будет найден хотя бы один символ из перечисленных в символьном классе:
[^а-я]+
^^^
С помощью позитивной опережающей проверки (?= )
выполняется поиск позиции, справа от которой находится пробел:
(?=\s)
^^
Следует помнить, что опережающие проверки ищут позиции в строке, а не соответствие символам, и поэтому результат их успешного поиска не будет "виден" в найденной подстроке. Если говорить конкретно об этом шаблоне (?<=:\s)[^а-я]+(?=\s)
, то символ : и следующий сразу за ним пробел
, а так же пробел, который следует после найденного совпадения с символьным классом
, не будут включены в найденную подстроку.
$str = 'Покупка паетов: Ntv_56°E, Xtra TV 4W на сумму 0.066667 $';
$patt = '~(?<=:\s)[^а-я]+(?=\s)~u';
preg_match($patt, $str, $arr);
var_dump($arr);
Результат:
array (size=1)
0 => string 'Ntv_56°E, Xtra TV 4W' (length=22)
Для строки Покупка паетов: Ntv_56°E на сумму 0.066667 $
результат будет таким:
array (size=1)
0 => string 'Ntv_56°E' (length=10)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Сайт на yii2Пытаюсь подключиться к документу из google spreadsheets и вытянуть оттуда данные, но при первой же попытке подключиться к файлу вижу ошибку
Видел, как таким способом фильтруют значения инпутовРешил попробывать