Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex使用PHP只查找字母_Php_Regex - Fatal编程技术网

Regex使用PHP只查找字母

Regex使用PHP只查找字母,php,regex,Php,Regex,我正在尝试创建一个正则表达式,它将检测字符串中是否只有字母。有人能告诉我下面的代码是否正确吗 $text = "asdsad"; if (ereg('[^A-Za-z]', $text)) { echo "More then letters"; } else { echo "only letters"; } ,如果你是这个意思的话 是否要确保字符串仅包含字母 试试这个 if (preg_match('/^\pL+$/u', $text)) { echo "Letters

我正在尝试创建一个正则表达式,它将检测字符串中是否只有字母。有人能告诉我下面的代码是否正确吗

$text = "asdsad";
if (ereg('[^A-Za-z]', $text)) {
  echo "More then letters";
}

else {
  echo "only letters";    
}
,如果你是这个意思的话

是否要确保字符串仅包含字母

试试这个

if (preg_match('/^\pL+$/u', $text)) {
   echo "Letters only";
} else {
   echo "More than letters";
}

所以你可以理解一些事情

. 停止使用它,使用preg_match。 使用带有preg_匹配的正则表达式时,需要指定正则表达式分隔符。大多数正则表达式使用/,但PHP允许您使用最匹配的字符对,例如~ 您缺少开始和结束锚点。这意味着您将无法从头到尾匹配字符串 如果可用,请使用Unicode正则表达式,以便仍能检测到非ASCII字母。 使现代化

PHP 输出 ,如果你是这个意思的话

是否要确保字符串仅包含字母

试试这个

if (preg_match('/^\pL+$/u', $text)) {
   echo "Letters only";
} else {
   echo "More than letters";
}

所以你可以理解一些事情

. 停止使用它,使用preg_match。 使用带有preg_匹配的正则表达式时,需要指定正则表达式分隔符。大多数正则表达式使用/,但PHP允许您使用最匹配的字符对,例如~ 您缺少开始和结束锚点。这意味着您将无法从头到尾匹配字符串 如果可用,请使用Unicode正则表达式,以便仍能检测到非ASCII字母。 使现代化

PHP 输出
不使用正则表达式的更好解决方案是使用ctype_alpha


只要使用当前语言环境,而不仅仅是假设字母表是a-zA-Z,是合适的。

不使用正则表达式的更好解决方案是使用ctype_alpha


只要使用当前语言环境,而不仅仅是假设字母表是a-zA-Z,就可以了。

您的问题是什么?我不理解你的第一句话。罗素,认为这个人可能没有英语作为他们的第一语言。史提夫:完全可以接受的是,你不理解这个问题中唯一的句子……罗素真的,但是当其他人设法回答的时候,显然这个问题是可以理解的。因此,如果我们作为一个社区要帮助人们,我们需要体谅那些学习英语的人,就像我们可能体谅那些学习PHP的人一样。你的问题是什么?我不理解你的第一句话。罗素,认为这个人可能没有英语作为他们的第一语言。史提夫:完全可以接受的是,你不理解这个问题中唯一的句子……罗素真的,但是当其他人设法回答的时候,显然这个问题是可以理解的。因此,如果我们作为一个社区要帮助人们,我们需要为学习英语的人着想,就像我们可能会为学习PHP的人着想一样。它不应该是preg_match'/^\pL+$/u',$text吗?我想这可能取决于源文件的编码。我不知道PHP,虽然…@Tim Pietzcker-Well PHP有u修饰符,所以我不知道。有人吗?谢谢,但它只与英语阿尔法工作,但我的语言是阿拉伯语,可以帮助一些吗plz@user553786检查通过的阿拉伯语字符串的新测试用例的更新。它不应该是preg_match'/^\pL+$/u',$text吗?我认为这可能取决于源文件的编码。我不知道PHP,虽然…@Tim Pietzcker-Well PHP有u修饰符,所以我不知道。有人吗?谢谢,但它只与英语阿尔法工作,但我的语言是阿拉伯语,可以帮助一些吗plz@user553786检查通过的阿拉伯字符串的新测试用例的更新。
"" letters only? false
"abc" letters only? true
"123" letters only? false
"لإنجليزية" letters only? true
"abc1" letters only? false
"русский" letters only? true