正则表达式在引号中评估字符串和内部字符串的余额和长度

时间:2017-01-12 17:29:45

标签: regex regex-negation regex-lookarounds

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

例如(粗体包括空格的整个字符串):

"嗨" 我想要一场比赛

"再见" 我不想匹配,因为再见这个词超长

"锄" "嗨嗨" 我想匹配,因为所有单词都被引用并且在长度内

"喜" "嗨嗨" "嗨" 我不想匹配,因为句子 hi hoe 超长

"喜" "喜"嗨我不想匹配,因为 hi 是不加引号的

"喜" "喜" "嗨我不想匹配,因为"嗨没有完全引用

"锄" "锄" "嗨"锄" 我不想匹配,因为"嗨没有完全引用

2 个答案:

答案 0 :(得分:1)

这可行吗

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

它基本上评估1到5个字符的字符串,由“并且允许多个字符串重复自己,前面有一个空格。由于它受到行尾和行尾的约束,它将排除不要输入的条目只计算这样的参赛作品。

答案 1 :(得分:1)

由于您希望匹配整行(^...$),其中引号(\"[\w ]{,5}\")中的单词用空格分隔,除了最后一个((?: |$)+)任意次数,你可以使用:

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

demo on regex101

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