Regex 正则表达式:使用重复组定义字符串的最大长度

Regex 正则表达式:使用重复组定义字符串的最大长度,regex,regex-group,Regex,Regex Group,标题可能会让人困惑,但我会尝试用一些例子来解释。 这是我现在的表达方式 ^([A-ZÆØÅ][a-zæøå]+[\s-]{1}){2,20}$ 我想要一个与以下内容匹配的表达式: 所以一般规律是, -每个单词都必须以大写字母开头 -大写字母后面只能是小写字母 -每个字符后面可以有一个或多个空格 最难的是, 在每一个组合中,我希望最后一行最多为20个字符 我想要一个与以下内容匹配的表达式: April-Can Æøå An-An-An An An-An Aaaaabbbbbcccccddddd

标题可能会让人困惑,但我会尝试用一些例子来解释。 这是我现在的表达方式

^([A-ZÆØÅ][a-zæøå]+[\s-]{1}){2,20}$
我想要一个与以下内容匹配的表达式: 所以一般规律是,

-每个单词都必须以大写字母开头

-大写字母后面只能是小写字母

-每个字符后面可以有一个或多个空格

最难的是, 在每一个组合中,我希望最后一行最多为20个字符

我想要一个与以下内容匹配的表达式:

April-Can Æøå
An-An-An An An-An
Aaaaabbbbbcccccddddd
Aaa
不匹配

andkas
Andfak-lkakad
AppleApple
Carrotcarrotcarrotcarrotcarrotcarrot
Banana- Banana
Apple-apple-apple-apple-apple banana banana apple carrot
使用前瞻:

^(?=.{2,20}$)[A-ZÆØÅ][a-zæøå]+(?:[\s-][A-ZÆØÅ][a-zæøå]+)*$
其中:

(?=.{2,20}$)
确保字符串中有2到20个字符。

然后你有一个以大写字母开头的单词,最后是空格或破折号和另一个单词。它可能有几个词

您可以使用此正则表达式:

^([A-ZÆØÅ][a-zæøå]{1,19}[\s-])*[A-ZÆØÅ][a-zæøå]{1,19}$

它匹配长度超过20个字符的字符串。第一组长度不受限制:-(抱歉,这是不正确的。OP希望整行字符数不超过20个字符。哦,我想我被搞糊涂了。我希望最后一行字符数最多不超过20个字符。这里的最后一行是什么?哦,抱歉迟到了,@M42是对的,我的意思是我希望整行字符数最多不超过20个字符。但是谢谢你的帮助:)!