2014-10-03 22 views
0

我试图用Java编写一个正则表达式匹配,看起来像在Java中的配套系列整数

(1, 2, 3, 4, 5, 6) 

也就是说,左括号字符串的正则表达式,随后的非负非零量整数(用逗号分隔,然后是任意数量的空白),并以右括号结尾。

我已经试过

([0-9]+,\s+) 

有谁知道怎么写这样的正则表达式?

+6

我们非常清楚知道如何...你有什么尝试?请遵循此链接和http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html,然后在寻求帮助之前提出一些建议。 – StackFlowed 2014-10-03 20:26:07

+0

我试过这个:([0-9] +,\ s +) – Ryan 2014-10-03 20:28:25

+0

http://stackoverflow.com/help/how-to-ask另外,请使用http://regex101.com/ – 2014-10-03 20:28:33

回答

4

你可以试试这个模式:

Pattern pattern = Pattern.compile("\\(\\d+(,\\s*\\d+)*\\)"); 

\\d:一个数字(09

\\s:空格字符

+:一次或多次出现

* :零次或多次发生

http://regex101.com/r/wT5wX7/1

你的正则表达式([0-9]+,\s+)接近莫名其妙地输入字符串匹配,但逗号只出现一次(你所期望的零个或多个逗号),并应遵循的数字,而不仅仅是空白。

+3

只是发布代码不是很有帮助。你应该用OP的代码 – 2014-10-03 20:30:58

+0

来解释问题。只要它工作正常。 – brso05 2014-10-03 20:32:34

+0

除非OP要求解释。 – brso05 2014-10-03 20:32:57

1

使用此:\(([0-9]+[\,]{1}[\s]*)+[0-9]+\)

编辑:\(([0-9]+[\,]{1}[\s]*)*[0-9]+\) - 也符合(1)

0

像这样的事情可能可能帮助你。

(\(){1}(\d+,[ ]+)+(\)){1} 

或与领先和trailng/

/(\(){1}(\d+,[ ]+)+(\)){1}/ 

您尝试的方法([0-9] + \ S +) 是说,你可以有尽可能多的数字,你想,然后是逗号,然后是空格。在您的尝试中,您是否使用了逗号后面的多位数字,或前导和尾随括号。