Java 中的正则表达式,\\\s 与 \\\s

新手上路,请多包涵

以下两个表达式有什么区别?

 x = x.replaceAll("\\s", "");
x = x.replaceAll("\\s+", "");

原文由 mpluse 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 592
1 个回答

第一个匹配单个空格,而第二个匹配一个或多个空格。它们是所谓的正则表达式量词,它们执行这样的匹配(取自 文档):

 Greedy quantifiers
X?  X, once or not at all
X*  X, zero or more times
X+  X, one or more times
X{n}    X, exactly n times
X{n,}   X, at least n times
X{n,m}  X, at least n but not more than m times

Reluctant quantifiers
X?? X, once or not at all
X*? X, zero or more times
X+? X, one or more times
X{n}?   X, exactly n times
X{n,}?  X, at least n times
X{n,m}? X, at least n but not more than m times

Possessive quantifiers
X?+ X, once or not at all
X*+ X, zero or more times
X++ X, one or more times
X{n}+   X, exactly n times
X{n,}+  X, at least n times
X{n,m}+ X, at least n but not more than m times

原文由 Óscar López 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题