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