执行 Preg_match 然后分别检查每个选项
Do a Preg_match then check each option individually
大家下午好,
这个问题困扰我好几天了,我终于决定需要一些帮助。每次我像这样进行 Pregmatch 时:
$regp = "/(\s*)(\s*\(?0\d{4}\)?(\s*|-)\d{3}(\s*|-)\d{3}\s*)|(\s*\(?0\d{3}\)?(\s*|-)\d{3}(\s*|-)\d{4}\s*)|(\s*(7|8)(\d{7}|\d{3}(\-|\s{1})\d{4})\s*)/";
preg_match_all($regp, $html[1], $phonematch, PREG_SET_ORDER, 0);
foreach($phonematch as $resultp) {
echo $resultp[0];
echo "</br>";
}
我确实得到了我需要的结果,但我现在需要做的是一个 if 语句,它检查每个结果是否在前面包含 0,如果不包含则显示结果'显示它,但无论我尝试多少种不同的方法,我似乎都找不到实现此目的的方法。
感谢大家的帮助。
我只想在循环中添加 substr()
,或者如果您想完全跳过它,那么只需在正则表达式的开头添加 0
$regp = "/(\s*)(\s*\(?0\d{4}\)?(\s*|-)\d{3}(\s*|-)\d{3}\s*)|(\s*\(?0\d{3}\)?(\s*|-)\d{3}(\s*|-)\d{4}\s*)|(\s*(7|8)(\d{7}|\d{3}(\-|\s{1})\d{4})\s*)/";
preg_match_all($regp, $html[1], $phonematch, PREG_SET_ORDER, 0);
foreach($phonematch as $resultp) {
if (substr($resultp[0], 0, 1) !== '0') {
continue;
}
echo $resultp[0];
echo "</br>";
}
大家下午好,
这个问题困扰我好几天了,我终于决定需要一些帮助。每次我像这样进行 Pregmatch 时:
$regp = "/(\s*)(\s*\(?0\d{4}\)?(\s*|-)\d{3}(\s*|-)\d{3}\s*)|(\s*\(?0\d{3}\)?(\s*|-)\d{3}(\s*|-)\d{4}\s*)|(\s*(7|8)(\d{7}|\d{3}(\-|\s{1})\d{4})\s*)/";
preg_match_all($regp, $html[1], $phonematch, PREG_SET_ORDER, 0);
foreach($phonematch as $resultp) {
echo $resultp[0];
echo "</br>";
}
我确实得到了我需要的结果,但我现在需要做的是一个 if 语句,它检查每个结果是否在前面包含 0,如果不包含则显示结果'显示它,但无论我尝试多少种不同的方法,我似乎都找不到实现此目的的方法。
感谢大家的帮助。
我只想在循环中添加 substr()
,或者如果您想完全跳过它,那么只需在正则表达式的开头添加 0
$regp = "/(\s*)(\s*\(?0\d{4}\)?(\s*|-)\d{3}(\s*|-)\d{3}\s*)|(\s*\(?0\d{3}\)?(\s*|-)\d{3}(\s*|-)\d{4}\s*)|(\s*(7|8)(\d{7}|\d{3}(\-|\s{1})\d{4})\s*)/";
preg_match_all($regp, $html[1], $phonematch, PREG_SET_ORDER, 0);
foreach($phonematch as $resultp) {
if (substr($resultp[0], 0, 1) !== '0') {
continue;
}
echo $resultp[0];
echo "</br>";
}