假设我有这样的文字:"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 个字符?
Thanks
您可以在检查模式与匹配部分时通过前瞻来限制字符数。
如果您可以按空格分割输入,则可以使用:
^(?=.{2,5}$)[A-Z]{1,4}[0-9]{1,4}$
See 演示在这里.
如果无法按空格分割,可以使用捕获组(?:^| )(?=.{2,5}(?=$| ))([A-Z]{1,4}[0-9]{1,4})(?=$| )
例如,或向后看或\K
根据您的正则表达式风格进行分割(请参阅demo).
之前的回答, 错误匹配A1A1A
,在 @a_guest 评论后更新。
您可以使用前瞻来检查模式,同时使用正则表达式的匹配部分限制字符数:
(?=[A-Z]{1,4}[0-9]{1,4}).{2,5}
See 演示在这里.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)