簡體   English   中英

正則表達式擴展和語言

[英]Regex extension and language

我期待驗證一些文件名。 但無法弄清楚正確的正則表達式文件名可以是任何東西,但需要檢查文件名是否以

  1. _下划線
  2. en或ru或cy(國家代碼2字母)
  3. (點)
  4. 擴展(jpeg,jpg,mp4,png,gif)

所以檔案

my_file_dummy_name.jpeg - not valid
my_file_dummy_name_en.jpeg - valid

對於現在我嘗試了這個(並且正在工作,但也許有更好的解決方案)

/(\_\w.\.\w+)/g

多一個:

/(\_[a-z]{2}\.[a-z]{3,4})/g

原始正則表達式的問題在於,雖然它與您想要允許的文件名相匹配,但它也會匹配您不想要的內容。

例如,以下正則表達式

/(\_\w{2}\.\w+)/g

將匹配文件my_file_dummy_name_de.mpeg ,這是一個來自德國的視頻文件。 顯然,我們不希望首先看到這一點。

試試這個正則表達式:

_(en|ru|cy)\.(jpeg|jpg|mp4|png|gif)$

在這里演示:

Regex101

如果你想讓正則表達式為你做所有檢查,那么有一個更嚴格的方法:

/_(en|ru|cy)\.(jpeg|jpg|mp4|png|gif)$/

這樣您就可以確保所提到的所有限制。 此外,不需要g lobal標志,因為我們只對字符串的結尾感興趣(這就是為什么我把EOL錨點放在$ )。 但是,如果文件名中存在混合大小寫的可能性,您可以添加i gnore案例標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM