Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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_Preg Match - Fatal编程技术网

Php preg_匹配字符串必须以字母字符开头

Php preg_匹配字符串必须以字母字符开头,php,preg-match,Php,Preg Match,我有一个名称字段,我想进行验证,所以第一个字符必须按名称的字母顺序排列,并且后面允许空格和破折号。我有这个,但它将允许“-”作为第一个字符 preg_match("/^([a-z -])+$/i", $str) 谢谢具体一点是更好的选择。但您也可以使用断言: preg_match("/^(?![- ])([a-z -])+$/i", $str) (?!…)可以排除首先出现的字符。您还可以使用肯定断言,如(?=\w)我认为查找断言是(?和(?@BoltClock:它不是一个真正的lookbac

我有一个名称字段,我想进行验证,所以第一个字符必须按名称的字母顺序排列,并且后面允许空格和破折号。我有这个,但它将允许“-”作为第一个字符

preg_match("/^([a-z -])+$/i", $str)

谢谢

具体一点是更好的选择。但您也可以使用断言:

preg_match("/^(?![- ])([a-z -])+$/i", $str)

(?!…)
可以排除首先出现的字符。您还可以使用肯定断言,如
(?=\w)

我认为查找断言是
(?和
(?@BoltClock:它不是一个真正的lookback,而是一个lookcurrent。它声明了紧跟其后的字符,所以马里奥的那一个更正了我想要lookback、lookcurrent还是lookaheah。Thanks@johncook:使用示例中的代码。我们刚才讨论了术语。(技术上基本相同。)对不起,这是一种痛苦,但你怎么能让它以“-”结尾呢
preg_match("/^(?![- ])([a-z -])+$/i", $str)