我要驗證服務器的響應相匹配下列格式定期expresssion的Java
STATUS [a number] [a math operator] [another number]
數可以是任意整數和數學運算符是+,/, - 或*。
如何在java代碼中使用正則表達式驗證此操作?
我要驗證服務器的響應相匹配下列格式定期expresssion的Java
STATUS [a number] [a math operator] [another number]
數可以是任意整數和數學運算符是+,/, - 或*。
如何在java代碼中使用正則表達式驗證此操作?
您可以使用以下正則表達式使用matches()
來驗證。
if ("STATUS 5 + 10".matches("STATUS *\\d+ [-+/*] \\d+")) { ...
您需要轉義*和/ – Lucas 2014-09-12 23:08:34
我會盡力而爲。此外,該行應以\ n.i.e STATUS 5 + 10 \ n結尾。我是否需要在* \\ d +之後指定? – WillMcavoy 2014-09-12 23:29:53
想想上面的作品,它可以接受多於一個5和+之間的空格,這不是預期的。我嘗試將它改爲* \\ d + [:blank:] * [ - +/*] [:blank:] * \\ d +但它失敗。我怎樣才能確保一個空格「5 + 10」? – WillMcavoy 2014-09-13 19:31:29
它會像這樣
STATUS [0-9]* [+*/-] [0-9]*
\ Oracle的文檔的一些事情:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
現在"a*b"
是這裏的正則表達式,你需要與你所需要的正則表達式,喜歡的東西來代替:
"[\\d]+[+-\\*\\/]{1}[\\d]+"
但它可能會有所不同,取決於你需要什麼(你沒有指定數字應該是多長等)
您是否試過編寫正則表達式呢? – hexafraction 2014-09-12 22:56:01
您可以顯示一個實際的字符串示例,而不是使用佔位符? – hwnd 2014-09-12 22:56:29
什麼樣的數字?數字可以包含','和'。'和指數的上標?羅馬數字可以嗎?八?十六進制? – 2014-09-12 23:03:46