PHP reg ex允许所有字母表中的所有字母

PHP reg ex允许所有字母表中的所有字母,php,regex,Php,Regex,我想在PHP中创建一个reg表达式,允许所有字母表中的所有字母,包括西里尔文、希腊文、中文等,还允许数字、点和下划线。前三个字符必须是字母(所有字母) 这将用于验证用户名,因此没有空格 $regex = \p{L}\; 你可以想出: $username = 'äöäölöäßµ'; $regex = '~^\p{L}{3}[\p{L}\w]*[\p{L}\d]$~u'; if (preg_match($regex, $username)) { // it matches } 另外,请参

我想在PHP中创建一个reg表达式,允许所有字母表中的所有字母,包括西里尔文、希腊文、中文等,还允许数字、点和下划线。前三个字符必须是字母(所有字母)

这将用于验证用户名,因此没有空格

$regex = \p{L}\;

你可以想出:

$username = 'äöäölöäßµ';
$regex = '~^\p{L}{3}[\p{L}\w]*[\p{L}\d]$~u';
if (preg_match($regex, $username)) {
   // it matches
}
另外,请参见上的演示。

这只允许前三个字符使用字母(任何字母表)以及字母、数字和下划线,直到最后。最后一个字符只允许有一个数字或字母。

您可以得出:

$username = 'äöäölöäßµ';
$regex = '~^\p{L}{3}[\p{L}\w]*[\p{L}\d]$~u';
if (preg_match($regex, $username)) {
   // it matches
}
另外,请参见上的演示。

这只允许前三个字符使用字母(任何字母表)以及字母、数字和下划线,直到最后。最后一个字符只能有一个数字或几个字母。

我也有同样的问题要解决,我似乎终于在stackoverflow找到了金子。但Jan的解决方案并不完全正确,因为特定国家的字符必须始终以Unicode(UTF-8或更高)编码。但对于UTF-8或更高版本,PHP的preg函数都不能绝对正确地工作。然后必须使用mb_ereg函数。但是,正则表达式也可以与mb_ereg_match完美配合,尽管必须省略分隔符
~
和修饰符
u
(POSIX语法)

我还注意到了一个小缺陷,尽管在这一点上必须说我是超级挑剔的。:-) “Curl字体”(阿拉伯语、日语、汉语等)自然也能识别regExp未截取的数字。例如,用户名“二つつのキラビアンカ" 将被允许,但不允许在开头使用数字。但是“二つ“(日语)代表生活在欧洲的人们更常见的数字2(整个数字用拉丁字符:“2Kira Bianca”)。尽管我不得不承认我不能使用这些“卷曲字体”,也不知道这些字符是否真的等同于我们的数字2或书写的两个


最后,简单介绍一下“卷曲字体”的表达“我用过。这绝非贬损,但我没有其他想法,我可以用什么作为这些作品的通用术语。相反地,我们的拉丁字母对于那些不掌握这些字母的人来说也是卷发。

我也有同样的问题要解决,我似乎终于在stackoverflow找到了金子。但Jan的解决方案并不完全正确,因为特定国家的字符必须始终以Unicode(UTF-8或更高)编码。但对于UTF-8或更高版本,PHP的preg函数都不能绝对正确地工作。然后必须使用mb_ereg函数。但是,正则表达式也可以与mb_ereg_match完美配合,尽管必须省略分隔符
~
和修饰符
u
(POSIX语法)

我还注意到了一个小缺陷,尽管在这一点上必须说我是超级挑剔的。:-) “Curl字体”(阿拉伯语、日语、汉语等)自然也能识别regExp未截取的数字。例如,用户名“二つつのキラビアンカ" 将被允许,但不允许在开头使用数字。但是“二つ“(日语)代表生活在欧洲的人们更常见的数字2(整个数字用拉丁字符:“2Kira Bianca”)。尽管我不得不承认我不能使用这些“卷曲字体”,也不知道这些字符是否真的等同于我们的数字2或书写的两个



最后,简单介绍一下“卷曲字体”的表达“我用过。这绝非贬损,但我没有其他想法,我可以用什么作为这些作品的通用术语。相反地,我们的拉丁字母也只是对不掌握这些字母的人来说的卷发。

你的问题是什么?我对正则表达式没有任何经验对不起。如何创建此注册表项?是否需要匹配任何单词?你到底想达到什么目的?@rexhin没有空格有一条捷径:\n我记下了这一点,因为在阅读评论时,你需要的正则表达式的确切标准正在改变,并且没有在问题上明确声明;你要的是饼干,要的是蛋糕。你的问题是什么?我对正则表达式没有任何经验。对不起。如何创建此注册表项?是否需要匹配任何单词?你到底想达到什么目的?@rexhin没有空格有一条捷径:\n我记下了这一点,因为在阅读评论时,你需要的正则表达式的确切标准正在改变,并且没有在问题上明确声明;你要一块饼干,还要一块蛋糕。这只允许数字、点和下划线吗?@rexhin:这只允许字母(没有下划线或数字)。请更精确地说明您需要什么,正则表达式是可以调整的。@rexhin您为什么不以Jan给出的例子为例,然后使用该例子并从中学习,并根据您的具体(似乎不断变化的)需要调整结果。简不是来为你工作的。为自己学习。@Rezhin:查看最后更新的答案和解释。不过,请下次在第一位说得更准确一些:)非常感谢。我没有把所有的要求都包括在问题中,因为我认为没有人会读它。非常抱歉,非常感谢您这只允许数字、点和下划线吗?@rexhin:这只允许字母(没有下划线或数字)。请更精确地说明您需要什么,正则表达式是可以调整的。@rexhin您为什么不以Jan给出的例子为例,然后使用该例子并从中学习,并根据您的具体(似乎不断变化的)需要调整结果。简不是来为你工作的。为自己学习。@Rezhin:查看最后更新的答案和解释。不过,请下次在第一位说得更准确一些:)非常感谢。我没有把所有的要求都包括在问题中,因为我认为没有人