gpt4 book ai didi

java - 匹配 n 个或多个定义的连续字符,不包括空格

转载 作者:行者123 更新时间:2023-11-30 10:37:48 25 4
gpt4 key购买 nike

我想匹配任何额外的 x 个连续字符,不包括空格,限制为 5 x:

  1. xxxxx -> ∅
  2. xxxxxxxx -> xxx
  3. x x x x x -> ∅
  4. x x x x x x x x -> x x x
  5. x x x x x x x x -> x x x

所以基本上,这个正则表达式只适用于 1. 和 2. :

^([x]{0,5})([x ]*)

如何在不计算空格的情况下允许空格?

编辑:目标是使用 Java 删除多余的 x

最佳答案

您可以将空白模式添加到非捕获组中,并将限制量词应用于该组,而不是仅在 x 上:

^((?:\s*x){0,5})([x ]*)
^^^^^^^^^^^^

参见 regex demo

当您在上应用量词(此处为{0,5})时,整个序列会“重复”,并且因为只有一个 x 在组内(在它的末尾),所以只有 0 到 5 个 x 可以与之匹配,以及任意数量的空格。

详细信息:

  • ^ - 字符串的开始
  • ((?:\s*x){0,5}) - 第 1 组捕获 0 到 5 个序列
    • \s* - 0+ 个空格
    • x - 文字 x
  • ([x ]*) - 第 2 组捕获 0+ x 或空格。

关于java - 匹配 n 个或多个定义的连续字符,不包括空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40008698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com