PHP以可变文字搜索

时间:2018-06-26 14:33:40

标签: php

我有这个变量:

$var = "261202 31012TF 4444 RUFOK 15/18 Q5242 PARLO";

我想保存以Q(Q5242)开头的那部分变量

如何搜索此$ var并将其保存?我无法使用substr,因为$var的值总是在变化,并且总是在变量的另一个“位置”。

例如:

第一种情况:

$var = "261202 31012TF 4444 RUFOK 15/18 Q5242 PARLO";

第二种情况:

$var = "261202 31012TF Q5242 4444 RUFOK 15/18 PARLO"; 

谢谢您的帮助!

2 个答案:

答案 0 :(得分:2)

$pattern = '/\bQ[^\s]+/'

将匹配从Q到空格的所有“单词”。

$pattern = '/\bQ\d{4}/'

会更加严格,匹配以Q开头且后跟4位数字的单词。

preg_match($pattern, $var, $matches);

可用于从字符串中提取匹配项。

答案 1 :(得分:2)

Substr和strpos解决方案。
代码注释。

$var = ["261202 31012TF 4444 RUFOK 15/18 Q5242 PARLO",
        "261202 31012TF Q5242 4444 RUFOK 15/18 PARLO"]; 

foreach($var as $v){
    $pos = strpos($v, "Q"); // find Q
    // Echo substring from Q to next space
    echo substr($v, $pos, strpos($v," ",$pos)-$pos) . "\n";
}

https://3v4l.org/5f740