【发布时间】:2020-06-22 10:50:37
【问题描述】:
我正在为具有关键字和逗号(分隔)/分号(EOL)分隔值的文件编写语法检查器(在 Java 中)。两个完整结构之间的空格数量未指定。
需要什么:
在多行文件中查找任何重复的单词(连续的和不连续的)。
// Example_1 (duplicate 'test'):
item1 , test, item3 ;
item4,item5;
test , item6;
// Example_2 (duplicate 'test'):
item1 , test, test ;
item2,item3;
我已尝试应用 (\w+)(s*\W\s*\w*)*\1 模式,但无法正确捕获重复项。
【问题讨论】:
-
即使它们被多个非单词字符分隔,您是否考虑重复?喜欢
word \n\t--- word?或者在检查重复的单词之间是否应该只存在严格的[whitespace*][nonword][whitespace*]? -
不连续的意思是
item1, item1不应该匹配吗? -
@Alex 查看我更新的答案,如果有连续的欺骗,则不匹配
-
假设字符串是
”a, a, a”。是只匹配第一个词还是同时匹配第一个词和第二个词(容易得多)? -
@Cary Swoveland 在完美的情况下,我想匹配第一个副本,因为它会使错误处理(需要报告第一个副本的位置)更容易。