PHP 正则表达式无法正常工作


PHP Regex is not working properly

我有一个变量可以接收这两个值:

'01838723001603 TELO 155' ou '01838723009850 0608'。

我想获取 14 个字符数之后的第二个值。为此,我正在尝试以下正则表达式,但它不起作用:

/[0-9]{14} (.*?)/i

preg_match_all('/[0-9]{14} (.*?)/i', $data, $result);
var_dump($result);

结果 -> [0 => '01838723026436', 1 => '01838723026436']。

她只是取第一个值 (01838723001603).
我希望她返回值:"TELO 155"/'0608'

(这必须使用正则表达式来完成,因为这些数据是从文本文件中捕获的)

你可以尝试看后面

/?<='d{14}'s)[^']+/

正则表达式演示

preg_match_all("/(?<=''d{14}''s)[^']+/", "01838723001603 TELO 155' ou '01838723009850 0608'.", $matches);

将输出为

Array ( [0] => Array 
                 ( [0] => TELO 155 
                   [1] => 0608 ) 
      ) 

这应该适合您:

<?php
    $data = "01838723009850 0608";  //01838723001603 TELO 155
    preg_match_all('/'d{14}'s?(.*?)$/', $data, $result);
    echo $result[1][0];
?>

输出:

0608  //TELO 155