我有以下示例。
正则表达式:
'/test=([0-9]*).*?marker/'
测试字符串:
test=1234 test=5678 unknown marker
匹配的组返回:
1234
如何修改正则表达式以返回与标记最接近的值5678
?
感谢
编辑:我已经更新了这个例子。对困惑感到抱歉。哪里不知道可以是什么
答案 0 :(得分:1)
$str = 'test=1234 test=5678 marker';
preg_match('/test=(\d+)\smarker/', $str, $matches);
echo $matches[1]; //=> 5678
答案 1 :(得分:0)
这两个正则表达式中的任何一个都可以工作:
$s = 'test=1234 test=5678 unknown marker'; // input
if (preg_match('/test=(\d+)(?!.*?test=\d+)/', $s, $arr)) var_dump($arr[1]);
// OR
if (preg_match('/test=(\d+)\D*marker/', $s, $arr)) var_dump($arr[1]);
<强>输出:强>
string(4) "5678"
string(4) "5678"