我要验证服务器的响应相匹配下列格式定期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