Java正则表达式解构重复字符

时间:2015-07-21 03:03:10

标签: java regex

我想了解以下正则表达式:

String.replaceAll("(.)(?=.*\\1)", "")

我理解第一部分(.)用于分组单个字符(任何东西)。这是为\\1创建后向引用。

另一部分(?=.*\\1)我很困惑。它表示前一个字符1或0次后跟(不确定=是什么),后跟任何字符1次或更多次,然后是后引用。

如果我输入以下hello12hel,则删除重复项。你能解释一下它与副本的匹配程度吗?

我遇到的另一个问题是为什么(?=.*\\1)需要分组。当没有提供正则表达式时失败(即如果我String.replaceAll((.)?=.*\\1))。 (为什么我们不能使用$ 1代替\\1?)

0 个答案:

没有答案