我试图创建一个正则表达式,如果输入文本有最多3行文本,每行最多10个字符,并且字符全部为大写,则匹配.所以这个字符串应该匹配:"AA\n\nAA"
但这不应该
"A12c"
我认为这样可行:(我在Pattern中启用了多行)
(^[A-Z]{0,10}$){0,3}
但事实并非如此,只有在文本突然出现时才会匹配.
我无法理解表达式有什么问题 - 是不是{0,3}量词应用了correclty?
你忘了匹配行终止符:
(^[A-Z]{0,10}$\r?\n?){0,3}
Run Code Online (Sandbox Code Playgroud)
应该工作,假设为选择^和$匹配的开始/结束线,而不是开始/-的字符串末尾设置.
如果你的字符串中有超过3行的正则表达式失败,你可以强制正则表达式引擎匹配整个字符串,或者根本不用它\A和\z锚点:
\A(^[A-Z]{0,10}$\r?\n?){0,3}\z
Run Code Online (Sandbox Code Playgroud)
但是,并非所有正则表达式都支持这些字符串开头/字符串结尾锚点.