我试图创建一个正则表达式,如果输入文本有最多3行文本,每行最多10个字符,并且字符全部为大写,则匹配。
因此,此字符串应匹配:"AA\n\nAA"
但这不应该
"A12c"
我认为这样可行:(我在Pattern中启用了多行)
(^[A-Z]{0,10}$){0,3}
但事实并非如此,只有在文字突然出现时才会匹配。
我无法理解表达式有什么问题 - 是不是{0,3}量词应用了correclty?
答案 0 :(得分:5)
您忘记了与行终结符匹配:
(^[A-Z]{0,10}$\r?\n?){0,3}
应该有效,假设^
和$
匹配开始/结束而不是开始/结束字符串的选项已设置。
如果您的字符串中有超过3行,则需要正则表达式失败,您可以强制使用正则表达式引擎匹配整个字符串,或者根据\A
和{{1}将其包围起来}锚点:
\z
但是,并非所有正则表达式都支持这些字符串开头/字符串结尾锚点。