正则表达式评估字符串和引号中的内部字符串的平衡和长度

Regex evaluate string and inner strings in quotes for balance and length

我想要一些正则表达式来评估整个字符串,以确保所有内部字符串都用引号引起来并且在一定长度(5 个字符以下)以内。

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

"hi"我要匹配

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

"hoe" "hi hi" 我要匹配,因为所有单词都被引用并且在 length

以内

"hi" "hi hi" "hi hoe"我不想配了,就如那句hi hoe 超长

"hi" "hi" hi 我不想匹配,因为 hi 没有被引用

"hi" "hi" "hi I don't want to match, as "hi 未完全引用

"hoe" "hoe""hi "hoe"我不想匹配,as "hi 未完全引用

这可行

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

它基本上评估 1 到 5 个字符的字符串,由 " 分隔,并允许多个字符串重复自己,前面有 space。因为它受行首和行尾的约束,它将排除不仅包含此类条目的条目。

因为你想匹配整行 (^...$) 引号中的单词 (\"[\w ]{,5}\") 用空格分隔,除了最后一个 ((?: |$)+) 任何数字有时,您可以使用:

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

demo on regex101

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