EDITED
我用Google搜索为我的网络应用程序编写自定义正则表达式,但仍然无法获得我想要的内容。
我想检查一个字符串是否通过了这个模式:
*STRING*STRING INCLUDING ALL CHARS*STRING INCLUDING ALL CHARS#
例如:
*STRING*the first string تست یک*the second string تست دو#
应该返回TRUE
*sdsdsd*the first string تست یکthe second string تست دو#
应该返回FALSE(因为它不是* STRING * STRING * STRING#的模式)
$check = preg_match("THE RULE", $STRING);
我在这里要求这个规则,对不起,如果我以错误的方式提出我的问题......
答案 0 :(得分:2)
不需要正则表达式,请使用filter_var()
:
function checkEmail($str){
$exp = explode('*', $str);
if(filter_var($exp[1], FILTER_VALIDATE_EMAIL) && $exp[2] && $exp[3] && substr($str, strlen($str)-1, strlen($str)) == '#') {
return true;
}
return false;
}
$valid = checkEmail('*example@example.com*the first string تست یک*the second string تست دو#');
答案 1 :(得分:1)
检查字符串是否具有此模式:*STRING*STRING*STRING#
:
if (preg_match(
'/^ # Start of string
\* # Match *
([^*]*) # Match any number of characters except *
\* # Match *
([^*]*) # Match any number of characters except *
\* # Match *
([^#]*) # Match any number of characters except #
\# # Match #
$ # End of string/x',
$subject, $matches))
然后使用
filter_var($matches[1], FILTER_VALIDATE_EMAIL)
检查第一组是否包含电子邮件地址。