gpt4 book ai didi

regex - 行长和多行输入的正则表达式

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

我试图创建一个正则表达式,如果输入文本最多包含 3 行文本,每行最多 10 个字符,并且字符全部为大写,则该表达式将匹配。
所以这个字符串应该匹配:"AA\n\nAA"
但这不应该"A12c"
我认为这会起作用:(我在 Pattern 中启用了多行)
(^[A-Z]{0,10}$){0,3}
但事实并非如此,它仅在文本是单行文本时才匹配。

我不明白这个表达式有什么问题 - {0,3} 量词不是应用正确的吗?

最佳答案

您忘记匹配行终止符:

(^[A-Z]{0,10}$\r?\n?){0,3}

应该可以工作,假设 ^ 的选项和 $匹配开始/结束行而不是开始/结束字符串设置。

如果在字符串中超过 3 行时需要正则表达式失败,您可以强制正则表达式引擎匹配整个字符串或根本不匹配,方法是用 \A 将它包围起来。和 \z anchor :
\A(^[A-Z]{0,10}$\r?\n?){0,3}\z

但是,并非所有正则表达式都支持这些字符串开头/字符串结尾 anchor 。

关于regex - 行长和多行输入的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2309848/

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