我正在做twitter数据的规范化工作。推特用户经常使用诸如ts I looooooove这样的术语来强调爱这个词。我想把这些重复的字符替换成一个合适的英文单词,直到我得到一个合适的有意义的单词(我意识到我不能通过这种机制来区分上帝和善)。
我的策略是
String[]字符串={“”,"good","OK","boolean","mee","claaap“};string regex = "(a-z)\1{2,}";pattern Pattern = Pattern.compile(regex);for (String : String ){ matcher Matcher = pattern.matcher(string);if (matcher.find()) { System.out.println(string+”TRUE ");}}
由于我的Java知识很差,我无法处理3和4。问题是我不能替换所有的字符,只能替换两个重复的连续字符。以下代码片段将替换除一个重复字符以外的所有字符System.out.println(data.replaceAll("([a-zA-Z])\\1{2,}", "$1"));
需要帮助才能找出A。如何替换除2个连续重复字符之外的所有字符B。如何从A的输出中删除多一个连续字符我认为B可以通过以下代码片段进行管理
System.out.println(data.replaceAll("([a-zA-Z])\\1{1,}", "$1"));
编辑:由Wiktor Stribiżew提供的解决方案在Java中完美工作。我想知道在python中需要做哪些更改才能得到相同的结果。Python使用re.sub。
https://stackoverflow.com/questions/43605292
复制相似问题