【问题标题】:how to validate the first four character in string using php?如何使用php验证字符串中的前四个字符?
【发布时间】:2015-07-09 21:57:41
【问题描述】:

我想制作只接受ff的脚本;

  • 单词/字符串/段落中的第一个、第二个和第三个字符 == ABC;
  • 第四 来自单词/字符串/段落的字符 == 星号(*);
  • 从第 5 到第 20 只接受数字整数...

<?php

    $subject = "das*3445465656343";
    $pattern = '/^[ABCabc]{3}$/';
    preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);

?>

【问题讨论】:

  • 现在有什么问题?
  • 所以字符串长度必须是20个字符?
  • 我不知道如何进行验证,先生,
  • @chris - 20 字符长先生
  • 这里是正则表达式和用法。 sandbox.onlinephpfunctions.com/code/…

标签: php regex


【解决方案1】:

这应该适合你:

只需使用这个正则表达式:

$pattern = "/^abc\*\d{16}$/i";

解释:

  • ^ 在行首断言位置
  • abc 与字符 abc 逐字匹配(不区分大小写)
  • \* 匹配字符 * 字面意思
  • \d{16} 匹配数字 [0-9]
    • 量词:{16} 正好 16 次
  • $ 在行尾断言位置
  • i 修饰符:不敏感。不区分大小写的匹配(忽略 [a-zA-Z] 的大小写)

Demo

【讨论】:

    【解决方案2】:

    检查这个正则表达式:(?=^abc\*\d{16}$).+

    DEMO

    【讨论】:

    • 你能不能在上面的代码中使用你的正则表达式,然后返回一个布尔类型,如果它是真或假......
    • 它必须以abc 开头,而不是abc,并且长度必须为20 个字符。下面的@Bee 答案应该可以使用,与preg_match 一起使用。
    • 谢谢先生...但是前三个字母接受甚至“abc”都是隆隆声;
    • 按照 OPs 正则表达式,'/^[ABCabc]{3}$/' 很明显他希望 a b c 不区分大小写。
    • @Maus - 我只想接受 *(abc) 而不是 bca,或 acb,cab,cba,,,,,
    猜你喜欢
    • 2018-11-15
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 2014-03-12
    • 2015-12-08
    相关资源
    最近更新 更多