[英]Php find a part of string using regular expression
我想在@之后使用正則表達式獲取電子郵件字符串的一部分。 例如,我有字符串“ mirko@gmail.com”,並且我想獲取“ gmail.com”。 我寫了/^@./但沒有用-我寫了
preg_match('/^@./', $string, $output);
print($output);
我該如何解決?
你有幾個錯誤。 首先,用插入號告訴您希望@符號在字符串中位於第一位。 因此,對於永遠不會匹配的電子郵件。 然后,您需要設置一個捕獲組以實際獲取@之后的零件。 所以看起來像這樣:
<?php
$mail = "mirko@gmail.com";
preg_match('/@(.+)/', $mail, $output);
print_r($output[1]); // gmail.com
但是 ,這是一個非常簡單的任務,您不應該使用常規表達式。 explode()
將執行以下操作:
<?php
$mail = "mirko@gmail.com";
$mailArray = explode("@", $mail);
print_r($mailArray[1]); // gmail.com
為什么用正則表達式執行這種簡單的任務? 將strpos
與substr
結合使用,或僅將explode()
與@
用作其他答案所指示的第一個參數。
$email_string = "mirko@gmail.com";
$result = substr($email_string, strpos($email_string, "@") + 1);
echo $result ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.