我需要从以下字符串中提取ID和名称。
$string = $data[1][0];
preg_match('/NAME\s+:([^ID]+)(ID\s+:)(.+)/', $string, $matches);
print_r($matches);
上面的表达式在我尝试过在线工具时有效,但是仅当从数组中获取值时,它才在脚本中不起作用。
字符串值为
$string = 'NAME : KARL JOHNSON ID : 12345 (LGW FA-319,320 ) ';
答案 0 :(得分:1)
答案 1 :(得分:0)
这是我的尝试:
preg_match('/NAME\s+: ([A-Z ]+) ID\s+: ([0-9]+ )\([A-Z0-9 \-,]+\)/', $string, $matches);
$name = $matches[1];
$id = $matches[2];
完整的输出:
echo '<pre>' . print_r($matches, true) . '</pre>';
Array
(
[0] => NAME : KARL JOHNSON ID : 12345 (LGW FA-319,320 )
[1] => NAME :
[2] => KARL JOHNSON
[3] => ID :
[4] => 12345
[5] => (LGW FA-319,320 )
)
这可能没有被优化,实际上我正在训练RegEx。