我有一个变量可以接收这两个值:
'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