Java中的组匹配正则表达式

时间:2014-03-29 12:31:22

标签: java regex

我有一行按标签分割的数据。我想做一个计数匹配:前三个在组1中,后三个在组2中,最后一个在组3中。

0   0   1998-09-21 CD   O   O   B-Num

我不是正则表达式的专家,但我想出了这个:

^(\S*)[\t,]*(\S*)[\t,]*(\S*)[\t,]*(\S*)[\t,]*(\S*)[\t,]*(\S*)[\t,]*(\S*)[\t,]*(.*)$

这只会把所有东西分成七块,不符合要求。任何人都知道如何做这样的任务?

1 个答案:

答案 0 :(得分:1)

你可以改变你对此捕捉的方式:

^(\S*[\t,]*\S*[\t,]*\S*)[\t,]*(\S*[\t,]*\S*[\t,]*\S*)[\t,]*(\S*)$
 ^---------------------^      ^---------------------^      ^---^

此外,您可能希望将某些量词更改为+。拥有所有*意味着它也将尝试匹配空字符串。