Php 从字符串中提取不按常规顺序除以管道的值

Php 从字符串中提取不按常规顺序除以管道的值,php,function,pipe,extract,Php,Function,Pipe,Extract,我导入的xml中有一部分不是按常规顺序导入的。例如,可以是: 12月12日周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周

我导入的xml中有一部分不是按常规顺序导入的。例如,可以是:

12月12日周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日|96 | 29 | 67 | 26 | 27 | 25|||

我创建了如下函数:
function-caratteristiche1($title){
$title=substr($title,11,1);
返回$title;
}

接收#88的值,但有时#88不在该位置,而其他时间#88不存在。 我想使用一个函数来搜索#88,并给出2个子管道后的值

我能做什么?
非常感谢你

如果#88和两个管道之间的距离在所有情况下都相同,则可以使用带有“正向查找断言”的正则表达式,请参见

如果没有,您可能需要使用普通PHP来定位#88,然后从那里获取剩余的子字符串并搜索这两个管道

在回答“否”后编辑: 在这种情况下,我不会使用正则表达式。 尝试类似的方法(可能不是100%准确的语法):


因此,在本例中,预期输出为
2
?如果#88不存在怎么办?不,有时在两个管道之间(#88 |*|[1,9])可能会有一些文字。其他时间(#88 | |[1.9]|)无法出现。非常感谢你的帮助!
$pos88 = strpos('#88', $string);
newStr = substr($string, $pos88);
$posPipes = strpos('||', $newStr);
// ... and so forth ...