正则表达式(PHP)
您好,我需要用一个正则表达式用PHP查找数组中所有匹配的元素,但我有一个bug正则表达式(PHP),php,debugging,expression,Php,Debugging,Expression,您好,我需要用一个正则表达式用PHP查找数组中所有匹配的元素,但我有一个bug <?php $a[0]='user@mail.ru'; $a[1]='112233@mail.domen'; $a[2]='ru@mail.user'; $a[3]='___@.user'; $pattern = '[a-z_0-9]+@[a-z]*.[a-z]{2,}'; for ($i=0;$i<=3;++$i) { if(preg_match($pattern,$a[i])) {
<?php
$a[0]='user@mail.ru';
$a[1]='112233@mail.domen';
$a[2]='ru@mail.user';
$a[3]='___@.user';
$pattern = '[a-z_0-9]+@[a-z]*.[a-z]{2,}';
for ($i=0;$i<=3;++$i)
{
if(preg_match($pattern,$a[i]))
{
echo $a[i];
}
}
您可以试试这个-
$a[0]='user@mail.ru';
$a[1]='112233@mail.domen';
$a[2]='ru@mail.user';
$a[3]='___@.user';
for ($i=0;$i<=3;++$i)
{
if (!preg_match("/^[-_\.a-z0-9]+@([-_a-z0-9]+\.?)*[a-z]{2,6}$/i", $a[$i])) {
return false;
}
return true;
$a[0]='user@mail.ru';
$a[1]='112233@mail.domen';
$a[2]='ru@mail.user';
$a[3]=“用户”;
对于($i=0;$i此处不需要正则表达式——PHP具有内置的电子邮件验证功能:
filter_var( $email, FILTER_VALIDATE_EMAIL );
请参见此处的手册页:
甚至还有一个filter\u var\u array()
,它甚至可以让你不必有一个循环。试着用双引号。在正则表达式中使用哪个引号并不重要,但我已经尝试了每个变量。我只是学习了一下,并没有具体应用,但感谢您提供更多信息