提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我正在尝试验证带有字母“ CAT”或“ DOG”后跟8个数字并以“ .TXT”结尾的文件名。
例子:
CAT20000101.TXT
DOG20031212.TXT
这将不匹配:
ATA12330000.TXT
CAT200T0101.TXT
DOG20031212.TX1
这是我要制作的正则表达式:
(([A-Z]{3})([0-9]{8})([\.TXT]))\w+
为什么最后一节(.TXT)
无法匹配不匹配的文件扩展名?
参见示例: http : //regexr.com/3a7fo
在字符类内部,没有正则表达式分组,因此[\\.TXT]
不正确。
您可以使用此正则表达式:
^[A-Z]{3}[0-9]{8}\.TXT$
对于仅匹配的CAT
和DOG
使用:
^(CAT|DOG)[0-9]{8}\.TXT$
[AZ]{3}[0-9]{8}[\\.TXT]\\w+
\\.TXT
周围不必要的/破坏样式的字符类[]
[AZ]{3}[0-9]{8}\\.TXT\\w+
\\w+
[AZ]{3}[0-9]{8}\\.TXT
[AZ]{3}
更改为(?:CAT|DOG)
。 (?:CAT|DOG)[0-9]{8}\\.TXT
瞧。
失败是因为\\.TXT
在方括号中,该方括号仅匹配这四个字符之一。 只需使用(\\.TXT)
。
删除[.TXT]到.TXT周围的方括号您的示例已修改http://regexr.com/3a7fu
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.