我正在尝试验证一个文件名,其中包含字母“CAT”或“DOG”,后跟8个数字,并以“.TXT”结尾。
示例:
CAT20000101.TXT
DOG20031212.TXT
这不匹配:
ATA12330000.TXT
CAT200T0101.TXT
DOG20031212.TX1
这是我正在努力工作的正则表达式:
(([A-Z]{3})([0-9]{8})([\.TXT]))\w+
为什么最后一节(.TXT)
针对不匹配的文件扩展名失败?
答案 0 :(得分:2)
内部字符类没有正则表达式分组,因此[\.TXT]
不正确。
您可以使用此正则表达式:
^[A-Z]{3}[0-9]{8}\.TXT$
仅限匹配CAT
和DOG
使用:
^(CAT|DOG)[0-9]{8}\.TXT$
答案 1 :(得分:1)
[A-Z]{3}[0-9]{8}[\.TXT]\w+
[]
\.TXT
醇>
[A-Z]{3}[0-9]{8}\.TXT\w+
\w+
[A-Z]{3}[0-9]{8}\.TXT
[A-Z]{3}
更改为(?:CAT|DOG)
。 (?:CAT|DOG)[0-9]{8}\.TXT
瞧。
答案 2 :(得分:1)
它失败了因为\.TXT
在方括号中,它只匹配这四个字符中的一个。只需使用(\.TXT)
。
答案 3 :(得分:1)
删除[.TEXT]周围的方括号到.TEXT 您的示例已修改为http://regexr.com/3a7fu