[英]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.