我需要,如果字符串包含符号.
和@
打印是的,队列符号并不重要,重要的是在字符串中将这个符号至少一次,我需要使用正则表达式。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