Regex 正则表达式在引号中计算字符串和内部字符串的平衡和长度

Regex 正则表达式在引号中计算字符串和内部字符串的平衡和长度,regex,regex-negation,regex-lookarounds,Regex,Regex Negation,Regex Lookarounds,我需要一些正则表达式来计算整个字符串,以确保所有内部字符串都用引号括起来,并且长度小于一定长度(小于5个字符) 例如(整个字符串以粗体显示,包括空格): “嗨”我想要一个火柴 “再见”我不想匹配,因为“再见”这个词太长了 “hoe”“hi hi”我想匹配,因为所有单词都被引用,长度不超过 “hi”“hi”“hi-hoe”我不想匹配,因为这句话太长了 “hi”“hi”hi我不想匹配,因为hi是不带引号的 “hi”“hi”“hi我不想匹配,因为“hi没有被完全引用 “hoe”“hoe”“hi”“ho

我需要一些正则表达式来计算整个字符串,以确保所有内部字符串都用引号括起来,并且长度小于一定长度(小于5个字符)

例如(整个字符串以粗体显示,包括空格):

“嗨”我想要一个火柴

“再见”我不想匹配,因为“再见”这个词太长了

“hoe”“hi hi”我想匹配,因为所有单词都被引用,长度不超过

“hi”“hi”“hi-hoe”我不想匹配,因为这句话太长了

“hi”“hi”hi我不想匹配,因为hi是不带引号的

“hi”“hi”“hi我不想匹配,因为“hi没有被完全引用

“hoe”“hoe”“hi”“hoe”我不想匹配,因为“hi没有完全被引用

这可能有效

^((?:\"[\w\s]{1,5}\")(?:(?:\s+?\"[\w\s]{1,5}\")+)?)$
它基本上计算由1到5个字符组成的字符串,以“分隔,并允许这些字符串中的多个重复,前面有一个空格。由于它由行首和行尾绑定,因此它将排除不仅对这些项计数的项。

这可能行得通

^((?:\"[\w\s]{1,5}\")(?:(?:\s+?\"[\w\s]{1,5}\")+)?)$

它基本上计算由1到5个字符组成的字符串,以“分隔,并允许这些字符串中的多个重复,前面加空格。因为它是由行的开头和结尾绑定的,所以它将排除不只是对这些条目进行计数的条目。

因为您想匹配完整的行(
^…$
),其中的单词以空格分隔(
\“[\w]{,5}\”
),最后一行(
(?:|$)+
)可以使用以下任意次数:

^(?:\"[\w ]{,5}\"(?: |$)+)+$


编辑:但不要忘记多行标志。

由于要匹配引号(
^…$
)中包含单词的整行(
\[\w]{,5}\”
),除了最后一行(
(?:$)+
)之外,可以使用以下任意次数:

^(?:\"[\w ]{,5}\"(?: |$)+)+$


编辑:但不要忘记多行标志。

您的尝试中有什么不起作用?我很抱歉无法让我的正则表达式计算整个“^(\”[\w]{,5}\”)+'在计算字符串时起作用,但当我添加'$'时,它无法计算整个字符串。您的尝试中有什么不起作用?我很抱歉无法让我的正则表达式计算整个'^(\“[\w]{,5}\”)+'在计算字符串时起作用,但当我添加'$'时,它无法计算整个字符串。