java - java中的正则表达式,共享符号

标签 java regex

我试图从字符串中删除所有短于 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/

相关文章:

java - android recyclerview 仅在第一次显示数据

javascript - 转到 : regexp to swap cases

PHP验证有效的UUID

java - 下面这几行代码是什么意思

java - Lombok 发布@Builder 构建事件

regex - 如何使用 RegExp Replace 替换句子?

javascript - 如何只删除一串javascript中的一个字符

regex - perl可以一次性用自己的替代词替换多个关键字吗?

java - 从文件返回数组列表

java - 替换字符数组中多个相同的字符