Извлечение значений из строки, разделенной на трубы, не в обычном порядке

У меня есть часть xml, которую я импортирую, но не в обычном порядке. Это может быть, например:

87 || 1 | # 88 || 2 | # 89 || 2 | 50198 # 41 || 1 | # 3 || 1 | 117 # 20 ||| # 6 | 20 | 1 | # 24 78 # ||| 145 | 5 || # 36 ||| 90 # 37 96 # ||| ||| 29 67 # 26 # 27 ||| ||| ||| # 25

Я создаю такую ​​функцию:
function caratteristiche1($title) {
$title=substr($title,11,1);
return $title;
}

чтобы получить значение # 88, но иногда # 88 не находится в этой позиции, а другие времена # 88 нет.
Я хотел бы использовать функцию, которая будет искать # 88 и давать в результате значение, присутствующее после двух последующих каналов.

Что я могу сделать?
Спасибо вам большое!

0

Решение

Если расстояние между # 88 и двумя трубами одинаково во всех случаях, вы можете использовать регулярное выражение с «положительным взглядом за утверждением», см. http://php.net/manual/en/regexp.reference.assertions.php

Если нет, то вам, вероятно, нужно использовать обычный PHP, чтобы найти # 88, затем взять оставшуюся подстроку и искать два канала.

РЕДАКТИРОВАТЬ после вашего ответа «НЕТ»:
В этом случае я бы не стал делать это с RegEx.
Попробуйте что-то в этом роде (возможно, не на 100% точный синтаксис):

$pos88 = strpos('#88', $string);
newStr = substr($string, $pos88);
$posPipes = strpos('||', $newStr);
// ... and so forth ...
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]