preg_match:没有重复/不匹配

Hai*_*ood 9 php regex

我用这个: if(!preg_match('/^+[0-9]$/', '+1234567'))

我得到了:

警告:preg_match()[function.preg-match]:编译失败:在偏移量1处不重复

任何想法为什么?


更新:现在使用这个:if(!preg_match('/^\+[0-9]$/', '+1234567'))

我没有比赛.

任何想法为什么?

med*_*iev 21

+是一个特殊字符,表示前一个字符中的一个或多个,并且通过不转义它,您将它应用于插入符号.逃避它,\它将匹配文字加号.

if(!preg_match('/^\+[0-9]$/', '+1234567'))
Run Code Online (Sandbox Code Playgroud)

编辑:

它不匹配的原因是因为你指定了0-9的1位数和字符串的结尾$.你需要使它成为可变数量的数字.

if(!preg_match('/^\+[0-9]+$/', '+1234567')) {
Run Code Online (Sandbox Code Playgroud)

更短的版本:

if(!preg_match('/^\+\d+$/', '+1234567')) {
Run Code Online (Sandbox Code Playgroud)