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]
,第二个匹配的是
,你可以用自己看到。这就解决了我的问题。我显然需要比现在更好的理解。谢谢你们两位。