Java中的正则表达式,用于匹配整数序列

时间:2014-10-03 20:23:38

标签: java regex

我正在尝试在Java中编写一个正则表达式来匹配看起来像

的字符串
(1, 2, 3, 4, 5, 6)

即左括号,后跟非零量的非负整数(用逗号分隔,然后用任意数量的空格分隔),并用右括号结束。

我试过

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

有谁知道如何编写这样的正则表达式?

3 个答案:

答案 0 :(得分:4)

你可以尝试这种模式:

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

\\d:一个数字(09

\\s:空格字符

+:一次或多次出现

*:零次或多次出现

请参阅http://regex101.com/r/wT5wX7/1

您的正则表达式([0-9]+,\s+)以某种方式与输入字符串匹配,但逗号只有一次出现(您可能期望零或多个逗号),并且后面应该是数字,而不仅仅是空格。

答案 1 :(得分:1)

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

修改: \(([0-9]+[\,]{1}[\s]*)*[0-9]+\) - 也匹配(1)

答案 2 :(得分:0)

这样的事情可能对你有帮助。

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

或使用leading和trailng /

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

你试过的方法([0-9] +,\ s +) 是说您可以拥有任意数量的数字,然后是逗号,后跟空格。在您的尝试中,您考虑了多个数字,后跟逗号,或前导和尾随括号。