【发布时间】:2018-09-11 01:14:54
【问题描述】:
使用下面的代码,我怎样才能只为地址中有 10 个字符且带有 preg_match_all 和正则表达式的用户获取结果数组?
这是我的代码
$data = 'Maria address is QwMP_jkRkM and lives in Peru, Joseph address is QMPjkRk2ZM and lives in Peru, Miguel address is Q.wMP_jkRljo_hkM and lives in New York, George address is hdiJoW58_7 and lives in Austria';
preg_match_all('#(.*?) address is (.*?) and lives in (.*?)#', $data, $output);
实际上返回所有匹配项,我需要删除其地址中包含超过 10 个字符的结果。
注意:我不应该使用 foreach
【问题讨论】:
-
{10}- 精确到 10 个字符(而不是 *)。 * 和 ?在一起真的没有意义。 * 匹配 0-无限,?没有一个匹配 -
你的预期输出是什么?
-
(.*?) address is (.{1,10}) and lives in (.*?)也许? -
@Jeff, '?'让它不贪婪。
标签: php regex preg-match-all