我想在使用正則表達式之後得到電子郵件字符串的一部分。 例如,我有字符串'[email protected]',我想要'gmail.com'。 我寫/^@./ 但不與工作 我寫PHP使用正則表達式找到字符串的一部分
preg_match('/^@./', $string, $output);
print($output);
我怎樣才能解決這個問題?
我想在使用正則表達式之後得到電子郵件字符串的一部分。 例如,我有字符串'[email protected]',我想要'gmail.com'。 我寫/^@./ 但不與工作 我寫PHP使用正則表達式找到字符串的一部分
preg_match('/^@./', $string, $output);
print($output);
我怎樣才能解決這個問題?
爲什麼使用這種簡單任務的正則表達式?使用strpos
,結合substr
或僅使用explode()
和@
作爲第一個參數,如其他答案所指示的那樣。
$email_string = "[email protected]";
$result = substr($email_string, strpos($email_string, "@") + 1);
echo $result ;
你有幾個錯誤。首先,你要告訴你想讓@符號在字符串中處於第一位。所以對於永遠不會匹配的電子郵件。然後,您需要設置一個捕獲組以實際獲取@之後的部分。所以它會是這樣的:
<?php
$mail = "[email protected]";
preg_match('/@(.+)/', $mail, $output);
print_r($output[1]); // gmail.com
然而,這是這樣一個簡單的任務,你不應該使用正規表示法。 explode()
會做:
<?php
$mail = "[email protected]";
$mailArray = explode("@", $mail);
print_r($mailArray[1]); // gmail.com
倒票背後的原因是什麼? –