正则表达式用于字母数字字符加括号和空格

时间:2015-01-21 20:01:45

标签: php regex

我正在尝试构建一个匹配这些字符串的正则表达式:

  1. jfldfldf ldjfdlf ldfl
  2. ldfldf 8998 dfjldjf 89dfdf dfdf899
  3. ljdljf [dff] dfdf(fdfdf)898
  4. 要求:

    1. 字符串应仅以任何小字符或大写字母(A-Z)
    2. 开头
    3. 它可能包含空格或括号(( ) [ ]
    4. 不允许使用任何其他特殊字符
    5. 我尝试/^[a-zA-Z]+[\sa-zA-Z0-9\[\]\(\)].+/m,但它仍然接受其他特殊字符。

3 个答案:

答案 0 :(得分:7)

如此接近。

/^[a-zA-Z]+[\sa-zA-Z0-9\[\]\(\)].+/m
          ^                     ^ ^-- missing $
          ^                     ^-- delete this dot
          ^-- you could also delete this plus, but that's not as important

答案 1 :(得分:2)

/^[a-zA-Z]{1}[a-zA-Z0-9\ \[\]\(\)]+$/m

\ s =允许空格标签和新行等空格,所以这应该是“\”

因为规则只是第一个字母需要是大写或小写字母,所以严格来说{1}为+表示一个或多个。

最后需要一个$来表明这是该行的结束,没有别的可以遵循它

答案 2 :(得分:1)

正则表达式中失败的最大问题是单个'。'。除了新行之外,它还可以作为匹配任何值的通配符。不需要加号,并且字符串'$'的结尾缺失。

/^[a-zA-Z][\sa-zA-Z0-9\[\]\(\)]$/m