我试图从字符串中删除所有短于 3 个符号的单词。我有以下代码
String s = "a abc ab ab ab abc ab";
s = s.replaceAll("(^|\\s)([a-z]{1,2})(\\s|$)", "$1$3");
我运行它,但输出是
abc ab abc
我认为问题存在是因为 3 个单词“ab ab ab ”共享相同的空格,这就是为什么第二个“ab”不是正则表达式的条目。我怎样才能让它正常工作?
最佳答案
使用 word boundary改为 \b
并删除所有太短的单词:
s = s.replaceAll("\\b[a-z]{1,2}\\b", "");
关于java - java中的正则表达式,共享符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30621506/