【问题标题】:Regex pattern php?正则表达式模式php?
【发布时间】:2013-03-09 13:45:34
【问题描述】:

我正在尝试在 php 中学习正则表达式,并且一直在尝试为特定模式编写正则表达式。

我想要实现的模式如下,

必须以字母开头。

可以包含字母、数字或下划线。

整个字符串必须至少有 3 个字母。

我尝试过的;

'#^[a-z0-9_]+$#i' // this one just matches the characters I want

这就是我卡住的地方,我试过了,

'#^[a-z]{1}[a-z0-9_]+$#i' // doesn't work

我正在尝试从这个网站中学习,但我发现很难理解它,

http://www.regular-expressions.info/reference.html

谢谢

【问题讨论】:

    标签: php regex


    【解决方案1】:
    '#^[a-zA-Z]([0-9_]*[a-zA-Z]){2}[a-zA-Z0-9_]*$#'
    

    [a-zA-Z] 检查第一个约束(以字母开头)

    ([0-9_]*[a-zA-Z]){2}检查第二个约束(必须总共有3个字母)

    [a-zA-Z0-9_]* 释放以前的约束,只限于使用允许的字符

    【讨论】:

    • 正则表达式中的第二个约束是两个连续的字母,而不是“总共 3 个字母”。它将禁止A1_B2_C3。断言会更容易。还有/i标志。
    【解决方案2】:

    应该这样做:

    #^[a-zA-Z]{1}(\w*[a-zA-Z]\w*){2}$#i
    

    解释:

    ^[a-zA-Z]{1}  // 1st character is a letter
    (\w*[a-zA-Z]\w*){2}$ // The rest of the body contains exactly 2 letters, and 0 or more of any other word characters (letter, number, underscore)
    

    这里有一个 refiddle 示例:http://refiddle.com/gld

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多