php - 如何验证这种格式的字符串 : p[1 or more numbers]?

标签 php regex string

我想验证这些形式的字符串:

$string = 'p123455...
  • 有效:p1、p22、p54342534535
  • 无效:p、pp45、p543p、4p5232、q34

(第一个字符必须是'p',其他1个或多个数字)

我的尝试:

$valid = true;

if($string[0] != 'p')
    $valid = false;

$string = substr($string, 1);

if(!is_numeric($string)
    $valid = flase;

if($valid)
    echo 'string is valid.';

但是有没有更短更快的方法呢?

最佳答案

您可以将简单的正则表达式与 preg_match() 结合使用一次性完成验证:

if(preg_match("/^p\d+$/", $string)){
    //valid
} else {
    //not valid
}

正则解释:

  • ^ 字符串开头的 anchor
  • p 文字 p
  • \d 匹配所有数字 (0-9)
    • + 量词:匹配1次或多次
  • $ 字符串结尾的 anchor

关于php - 如何验证这种格式的字符串 : p[1 or more numbers]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34227326/

相关文章:

php - 从 php 生成 pdf(必须从 mysql 数据库中检索)

ios - swift 3 : most performant way to check many strings with many regular expressions

php - 如何在 PHP 中将大写单词字符与正则表达式匹配?

java - If equals doubles 语句检查

python split 和 re.split 不捕获字符串中出现的制表符或空格

php - Codeigniter 表单验证所需数组

php - 更改 HAS_MANY 关系生成的数组

C++。如何使用 std::regex 替换括号(和括号)内的任何内容?

c - 如何格式化和合并字符串

php - 调用 PHP 对象文件导致页面不再加载