解码正则表达式格式检查

时间:2017-03-09 03:46:52

标签: php regex

所以我正在做这个php拼图/挑战,任务是找到一个匹配这种格式的字符串:

/^[\w][-.]+([A-B])[^a-z]{3}\.[0-9]{2,4}$/

但我无法找到任何文件,这部分究竟是什么意思:

[-.]+

我希望正确解释的其他部分如下:

/^[\w]

任何单词字符

[^a-z]{3}

不是a-z 3次,例如ABC应该被接受

\.[0-9]{2,4}$

它必须以0-9重复2至4次结束。

2 个答案:

答案 0 :(得分:1)

[-.]表示匹配文字-或文字.+表示匹配其中一个或多个,因此[-.]+表示包含-. s中任意数字(但至少有一个)的字符串,而不包含任何内容。

您对其他部分的解释大多是正确的,并附有以下注释:

  1. 开头和结尾的^和$表示在正则表达式的其余部分匹配之前或之后,字符串中没有任何内容。
  2. 在你提到的结尾数字之前需要有一个字面点。
  3. 请注意,将来您可以使用https://regex101.com/之类的正则表达式测试版网站来查看正则表达式或正则表达式的确切内容。

答案 1 :(得分:1)

a.A123.12a-.-.-A123.12匹配。

说明:

/^[\w][-.]+([A-B])[^a-z]{3}\.[0-9]{2,4}$/从头到尾匹配:

Qty | Characters
----------------------------------------
1   | word character
1+  | "-" or "."
1   | "A" or "B"
3   | all characters apart from a-z
1   | "."
2-4 | figures 0-9