簡體   English   中英

使用正則表達式驗證項目文件

[英]validation of a project file using regex

我有一個像這樣的文件名sca_HelloWorld_rev2.0.jar

sca_{ProjectName}_rev{revisionId}.jar 

Id can be 2.11 ,3.0,3,4.0,5,4.564

ProjectName can be HelloWorld,HelloWorld123,Hello_world 

我正在嘗試在Java中進行正則表達式驗證?如何在Java中實現此功能?

謝謝。

static boolean isValid(String s){
    return s.matches("^sca_\\w+?_rev\\d+(?:\\.\\d+)?\\.jar$");
}

\\\\w+匹配一個或多個單詞字符,即AZ az 0-9 _

\\\\d+(?:\\\\.\\\\d+)? 匹配一個或多個數字,可選地后跟一個. 和一個或多個數字。

^$表示字符串的開頭和結尾。

您可以使用String函數進行匹配。 所以對於你的情況

projectName.matches("sca_(HelloWorld|HelloWorld123|Hello_world)_rev(2.11|3.0|3|4.0|5|4.564).jar");

查看http://www.regexplanet.com/advanced/java/index.html測試您的正則表達式

編輯:假設您的項目名稱實際上可以是任何東西,並且您的修訂版號可以采用#,#。##的格式,然后使用此正則表達式

對於這些輸入,projectName.matches(“ sca _。+ _ rev [0-9] +(。[0-9] +)*。jar”)將返回true。

“ sca_ADJOWE_rev2.12315.jar” .matches(“ sca _。+ _ rev [0-9] +(。[0-9] +)*。jar”)= TRUE

“ sca_PROJECT1_rev6.jar” .matches(“ sca _。+ _ rev [0-9] +(。[0-9] +)*。jar”)= TRUE

“ sca_HELLOWORLD_rev2.1.jar” .matches(“ sca _。+ _ rev [0-9] +(。[0-9] +)*。jar”)= TRUE

“ sca_HELLOWORLD_rev2.1.152.jar” .matches(“ sca _。+ _ rev [0-9] +(。[0-9] +)*。jar”)= FALSE

“ sca_rev2.1.jar” .matches(“ sca _。+ _ rev [0-9] +(。[0-9] +)*。jar”)= FALSE

轉到我上面發送的鏈接,放入該正則表達式,然后放置在一些測試輸入中,如果需要更多的微調,可以使用它。

此模式必須有效:

sca_\w+?_rev\d.\d{1,3}\.jar

暫無
暫無

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

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