我想了解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
进行测试