我需要,如果字符串包含符號.
和@
打印是的,隊列符號並不重要,重要的是在字符串中將這個符號至少一次,我需要使用正則表達式。REGEXP模式匹配2個不同的符號
我寫:
if (preg_match("#(\@.*\.)|(\..*\@)#",$str)) {
echo "yes";
}
但我懷疑,可以寫更多的方便模式這個
我需要,如果字符串包含符號.
和@
打印是的,隊列符號並不重要,重要的是在字符串中將這個符號至少一次,我需要使用正則表達式。REGEXP模式匹配2個不同的符號
我寫:
if (preg_match("#(\@.*\.)|(\..*\@)#",$str)) {
echo "yes";
}
但我懷疑,可以寫更多的方便模式這個
使用這個表達式(?=.*\.)(?=.*@).+
(?=.*\.) dot exists
(?=.*@) @ exists
.+ any string
你可以用前瞻的兩個條件分開:
^(?=.*\.)(?=.*@)
字符串起始錨點不是必需的,但它有助於提高性能。
也許它沒有一個正則表達式更容易一點。
if(strpos($str, ".") !== false || strpos($str, "@") !== false) {
echo "yes";
}
然後你不需要正則表達式也許快一點。然後你只搜索一個字符是否在一個字符串中。
我的spidey感覺說你試圖驗證一個電子郵件地址? – phpisuber01
不,不是電子郵件地址 – RIKI
不是一個正則表達式,但這總是一個選項:'if(strpos($ str,「@」)!== false && strpos($ str,「。」)!== false) – Supericy