import java.util.*;
import java.util.regex.*;
import java.lang.*;
import java.io.*;
class Ideone
{
{
String s
= "This is a test\nAnd this is also a test\nAnd these are also tests\ntest\nЭто тест\nЭто также тест\nИ это также тесты"; String rx
= "(?sU)\\b(\\w+)\\b(?=.*\\b\\1\\b)"; String[] results
= Pattern.
compile(rx
).
matcher(s
).
results().
map(MatchResult
::group
).
toArray(String[]::new); //System.out.println(results);
System.
out.
println(s.
replaceAll("(?U)\\b(?:" + String.
join("|", results
) + ")\\b",
"_$0")); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CmltcG9ydCBqYXZhLmxhbmcuKjsKaW1wb3J0IGphdmEuaW8uKjsKCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgcyA9ICJUaGlzIGlzIGEgdGVzdFxuQW5kIHRoaXMgaXMgYWxzbyBhIHRlc3RcbkFuZCB0aGVzZSBhcmUgYWxzbyB0ZXN0c1xudGVzdFxu0K3RgtC+INGC0LXRgdGCXG7QrdGC0L4g0YLQsNC60LbQtSDRgtC10YHRglxu0Jgg0Y3RgtC+INGC0LDQutC20LUg0YLQtdGB0YLRiyI7CgkJU3RyaW5nIHJ4ID0gIig/c1UpXFxiKFxcdyspXFxiKD89LipcXGJcXDFcXGIpIjsKCQlTdHJpbmdbXSByZXN1bHRzID0gUGF0dGVybi5jb21waWxlKHJ4KS5tYXRjaGVyKHMpLnJlc3VsdHMoKS5tYXAoTWF0Y2hSZXN1bHQ6Omdyb3VwKS50b0FycmF5KFN0cmluZ1tdOjpuZXcpOwoJCS8vU3lzdGVtLm91dC5wcmludGxuKHJlc3VsdHMpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihzLnJlcGxhY2VBbGwoIig/VSlcXGIoPzoiICsgU3RyaW5nLmpvaW4oInwiLCByZXN1bHRzKSArICIpXFxiIiwgIl8kMCIpKTsKCX0KfQ==