Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.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
PHP preg_与单个字符串匹配_Php_Regex - Fatal编程技术网

PHP preg_与单个字符串匹配

PHP preg_与单个字符串匹配,php,regex,Php,Regex,我在正则表达式方面遇到了麻烦(这绝对不是我的强项,所以对我要温柔) 这不符合: preg_match('/^[a-zA-Z].[a-zA-Z0-9\ _]*$/', 'n'); 我不明白为什么。在多个字符的字符串上似乎可以,但在单个字符上却不匹配 我试图确保我的字符串以字母(大写或小写)开头,后跟0个或多个字符,每个字符是:字母(大写或小写)、数字、空格或下划线 谁能启发我?谢谢您的模式实际上要求至少有两个字符: ^[a-zA-Z].[a-zA-Z0-9\ _]*$ [a-zA-Z]

我在正则表达式方面遇到了麻烦(这绝对不是我的强项,所以对我要温柔)

这不符合:

    preg_match('/^[a-zA-Z].[a-zA-Z0-9\ _]*$/', 'n');
我不明白为什么。在多个字符的字符串上似乎可以,但在单个字符上却不匹配

我试图确保我的字符串以字母(大写或小写)开头,后跟0个或多个字符,每个字符是:字母(大写或小写)、数字、空格或下划线


谁能启发我?谢谢

您的模式实际上要求至少有两个字符:

^[a-zA-Z].[a-zA-Z0-9\ _]*$
[a-zA-Z]
术语匹配一个字母,下面的点
匹配一个其他字符。因此,以下调用将成功,使用两个字符串:

preg_match('/^[a-zA-Z].[a-zA-Z0-9\ _]*$/', 'nn');
如果要创建一个与一个主字母匹配的模式,接着是零个或多个字母、数字、反斜杠、空格或下划线,则考虑使用以下内容:

preg_match('/^[a-zA-Z][a-zA-Z0-9\ _]*$/', 'n');

在这里,我已经删除了圆点,因此上面的调用将成功。

这是因为您至少需要2个字符。第一个匹配的是
[a-zA-Z]
,第二个匹配的是
,你可以用自己看到。这就解决了我的问题。我显然需要比现在更好的理解。谢谢你们两位。