[英]Regex validation of filename failing
我正在嘗試驗證帶有字母“ 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.