Java Regex匹配组,为什么第一组包含整个表达式?

时间:2017-03-26 19:29:09

标签: java regex

我想了解java正则表达式中的组函数是如何工作的。

当我使用正则表达式时

([\u25CB\u25CF])\s+([\u25CB\u25CF])\s+([\u25CB\u25CF])\s+([\u25CB\u25CF])\s+

在文本

Prozesse & Methoden
Technische Dokumentation    ○   ○   ●   ○
OSI Model   ○   ○   ●   ○

我希望第一场比赛看起来像这样:0到3组像"○","○","●",& #34;○&#34 ;. 四组,其中有一个圆圈。

但事实上它看起来像这样:"○○●○","○","○","●& #34 ;. groups()每个只包含一个字符,第一组如何包含整个表达式?

当我在表达式后面添加一个空组时,它匹配如下:

([\u25CB\u25CF])\s+([\u25CB\u25CF])\s+([\u25CB\u25CF])\s+([\u25CB\u25CF])\s+()

"○○●○","○","○","●"," ○"

然后记住最后一个非空组。我不明白为什么。

使用java 1.8和网站http://www.freeformatter.com/regex-tester.html

进行测试

0 个答案:

没有答案