gpt4 book ai didi

regex - 限制捕获组的字符数

转载 作者:行者123 更新时间:2023-12-04 14:26:50 25 4
gpt4 key购买 nike

假设我有以下文本:"AAAA1 AAA11 AA111AA A1111 AAAAA AAAA1111"

我想找到所有符合以下3个条件的事件:
-大写字母1至4倍
-数字1至4倍
-最大字符数为5

因此匹配项为:{"AAAA1", "AAA11", "AA111", "A1111", "AAAA1"}
我试过了

([A-Z]{1,4}[0-9]{1,4}){5}

但我知道它会失败,因为它正在寻找我的团队的五倍。

有没有一种方法可以将组的结果限制为5个字符?

谢谢

最佳答案

您可以在匹配部分检查图案的同时,限制字符计数。

如果可以按空格分隔输入,则可以使用:

^(?=.{2,5}$)[A-Z]{1,4}[0-9]{1,4}$

参见 demo here

如果无法按空格分割,则可以使用捕获组(例如 (?:^| )(?=.{2,5}(?=$| ))([A-Z]{1,4}[0-9]{1,4})(?=$| )),或者使用lookbehind或 \K进行分割,具体取决于您的正则表达式风格(请参阅 demo)。

先前的答案,错误地匹配了 A1A1A,在@a_guest注释之后进行了更新。

您可以使用前瞻性来检查您的模式,同时使用正则表达式的匹配部分来限制字符数:

(?=[A-Z]{1,4}[0-9]{1,4}).{2,5}

参见 demo here

关于regex - 限制捕获组的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29283628/

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