当前位置: 首页 > 面试题库 >

PHP正则表达式:在中找不到结尾定界符'^'

鲁熙云
2023-03-14
问题内容

我在使用正则表达式时遇到了一些麻烦。

这是我的代码

$pattern = "^([0-9]+)$";

if (preg_match($pattern, $input))
   echo "yes";
else
   echo "nope";

我运行它并得到:

警告:preg_match()[function.preg-match]:在以下位置找不到结尾的定界符“ ^”


问题答案:

PHP regex字符串需要定界符。尝试:

$numpattern="/^([0-9]+)$/";

另外,请注意,您使用的是小写字母o,而不是零。另外,如果您只是进行验证,则不需要捕获组,并且可以将正则表达式简化为/^\d+$/



 类似资料:
  • 我有一个正则表达式,它适用于 (字母数字-不分大小写) (仅限字母-与大小写无关) (只允许使用特殊字符和) null 我们是否可以修改上面的正则表达式来限制上面的两个测试用例?

  • 问题内容: 我正在Laravel 4.2上工作。我正在尝试使用Validator通过正则表达式来验证名称字段,这是我的以下规则: 但是,一旦我调用要验证的规则,就会引发错误,请参见下文: 问题答案: 由于您的正则表达式中包含管道,因此必须使用数组: 从文档: 使用模式时,可能需要在数组中指定规则而不是使用管道定界符,尤其是在正则表达式包含管道字符的情况下。

  • 问题内容: 为什么PHP正则表达式具有周围的定界符?如果将任何模式修饰符作为参数传递给正在使用的任何函数,似乎会更加清楚。 问题答案: 没有技术原因必须如此。 如注释中所述,底层库不需要将标志作为正则表达式的一部分进行传递-实际上,扩展名必须剥离这些标志并将其作为单独的参数传递。 似乎原始的实现者正试图使其看起来像grep / sed / awk / perl / etc,以便那些使用这些工具的程

  • 虽然它的缺点是,它不匹配一个字符的字符串。

  • 我正在使用以下正则表达式: 我的目标是只验证数字(int和decimal),空格, ( ), 点,AND,OR。其他一切都是不允许的。它看起来像是工作的,但是我对单词边界\bAND\b和\bOR\b Eg有问题。我不能输入ANDWE或EEE或任何组合,但我能做的是AN或A。如何在字符串中只允许两个单词AND或OR?它们在字符串中是可选的。 输入示例 0.10和23-有效 12和(15或0.2)-有

  • 问题内容: 我目前正在编写一个用于匹配内容中特定单词的库。 本质上,它的工作方式是将单词编译为正则表达式,然后通过所述正则表达式运行内容。 我要添加的功能是指定要匹配的给定单词是否必须以单词开头和/或结尾。例如,我有这个词。我指定它 必须开始一个字 ,因此将 匹配 的是在开始,但 不能匹配 为不启动的话。 我想使用单词边界来执行此操作,但是在进行一些测试时,我发现它无法正常运行。 采取以下措施,