确定字符串模式“a + b”

时间:2014-01-24 14:20:49

标签: java regex

我正在使用String.matches()来确定字符串是否采用以下模式:

“a + b”,其中a和b是一个数字(可以包含两者,如果是十进制数),

我写了一个正则表达式来确定一个数字是否在我想要的形式上,但我正在努力为整个事情编写正则表达式。

对于一个数字,这是我的代码:

kortform.matches("\\d+([\\,.]?\\d+)?")

对于“a + b”,我有以下代码,但“1 + 2”甚至不起作用。

kortform.matches("\\d+([\\,.]?\\d+)?\\+\\\\d+([\\,.]?\\d+)?")

3 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

kortform.matches("\\d+([,.]?\\d+)?[+]\\d+([,.]?\\d+)?")
  • 您无需逃离,
  • 如果用作+(字符类),
  • [+]可以避免转义

工作演示:http://ideone.com/OzVOQ7

答案 1 :(得分:0)

您可以尝试:

kortform.matches("\\d+([,.]\\d+)?\\+\\d+([,.]\\d+)?");

答案 2 :(得分:0)

试试这个正则表达式:

kortform.matches("\d+[\.\,]?(\d+)?\+\d+[\.\,]?(\d+)?")