簡體   English   中英

如何使用正則表達式識別特定域的郵件地址?

[英]How to identify mail addresses of specific domain using Regular expressions?

我想將Gmail地址的一些html元素包裝在給定的字符串中。 我該如何使用php正則表達式呢?

輸入

$string = 'Sample text name@gmail.com another text name2@gmail.com,name2@yahoo.com';

我想要的輸出

$string = "Sample text <div class='gmail'>name@gmail.com</div> another text <div class='gmail'>name2@gmail.com</div>,name2@yahoo.com";

嘗試類似的方法(包裝所有電子郵件地址):

$string = 'Sample text name@gmail.com another text name2@gmail.com,name2@yahoo.com';
echo preg_replace("/([\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-])+/i", "<div class='gmail'>$1</div>", $string);

僅Gmail:

$string = 'Sample text name@gmail.com another text name2@gmail.com,name2@yahoo.com';
echo preg_replace("/([\._a-zA-Z0-9-]+@gmail.com)+/i", "<div class='gmail'>$1</div>", $string);

實際上,您可以使用任何電子郵件搜索正則表達式 ,只需將域部分替換為固定的字符串即可。 然后搜索和替換並不需要太多的工作:

 = preg_replace('/\b\w[\w+.%!-]+@gmail.com\b/', "<div class=gmail>$0</div>", $src);
                      # ^^^ allowed special chars still insufficient
preg_replace('(\w+?@\w+?\.\w+)', '<div class="gmail">$0</div>', 'Sample text name@gmail.com another text name2@gmail.com,name2@yahoo.com');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM