2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
電子郵件地址可能比我們習(xí)慣的形式復(fù)雜得多,請參閱不常見的有效地址示例。
在https://emailregex.com/上提出了一個(gè)幾乎完美但非常復(fù)雜的正則表達(dá)式,用于匹配大多數(shù)電子郵件地址形式。
您可以使用這個(gè)更短但更具限制性的表達(dá)式,該表達(dá)式源自 Jan Goyvaerts 在https://www.regular-expressions.info/email.html上提出的一個(gè)表達(dá)式:/\b[A-Z0-9][A-Z0-9._%+-]{0,63}@(?:[A-Z0-9-]{1,63}\.){1,125}[A-Z]{2,63}\b/i
在 PHP 腳本中,可以這樣實(shí)現(xiàn):
<?php
$str = "<a h=ref=3D.mailto:rys@adres.pl.><img src=3D.http://www.lowiecki.pl/img/list.gif=
. border=3D.0.></a></td><td class=3D.bb.><a h=ref=3D.mailto:second-address@example.com.>foo</a>";
preg_match_all(
'/\b[A-Z0-9][A-Z0-9._%+-]{0,63}@(?:[A-Z0-9-]{1,63}\.){1,125}[A-Z]{2,63}\b/i', # After https://www.regular-expressions.info/email.html
quoted_printable_decode($str), # An e-mail address may be corrupted by the quoted-printable encoding.
$matches
);
echo isset($matches[0]) ? '<pre>'.print_r($matches[0], true).'</pre>' : 'No address found.';
?>
該腳本輸出:
Array
(
[0] => rys@adres.pl
[1] => second-address@example.com
)
請務(wù)必致電$matches[0]以獲取找到的地址。

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
接下來的代碼將搜索一封電子郵件并將其保存到一個(gè)變量中,之后您可以根據(jù)需要使用結(jié)果。
$email = preg_match_all(
"/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i",
$str,
$listofemails
);
if($email) {
echo "you got a match";
}
- 2 回答
- 0 關(guān)注
- 145 瀏覽
添加回答
舉報(bào)