我想編寫一些代碼來檢查用戶輸入是否與特定格式匹配。格式爲's'後跟一個空格和一個數字,如果輸入是「s 1 2 3 4」,它會調用某個函數。 「1 2」也是可以接受的。到目前爲止,我發現,這個正則表達式工程的時候指定金額:Java特定的正則表達式
if (inputLine.matches("s \\d+ \\d+")) { }
作品2號的S之後,但我需要能夠在S後接受任何數量的數字。 任何想法都適合我的需求的正則表達式?謝謝
我想編寫一些代碼來檢查用戶輸入是否與特定格式匹配。格式爲's'後跟一個空格和一個數字,如果輸入是「s 1 2 3 4」,它會調用某個函數。 「1 2」也是可以接受的。到目前爲止,我發現,這個正則表達式工程的時候指定金額:Java特定的正則表達式
if (inputLine.matches("s \\d+ \\d+")) { }
作品2號的S之後,但我需要能夠在S後接受任何數量的數字。 任何想法都適合我的需求的正則表達式?謝謝
您正則表達式更改爲
if (inputLine.matches("s(?: \\d+)+")) { }
匹配s
,空間和空間的序列1+與跟隨1+數字。
如果在s
之後允許使用0個數字,請將最後一個+
量詞替換爲*
以匹配零個或多個匹配項。
由於重複捕獲組覆寫該組的內容,在這裏使用捕獲組,因此,我建議使用非捕獲之一,(?:...)
是沒有意義的。
試試這個。 「s(\\ d +)+」前面有一個空格 – rafid059