多个单词检查

时间:2016-08-30 12:11:26

标签: regex

我正在尝试用正则表达式检查多个单词,但我不能。

@"[^a-zA-Z0-9\s].{1,35}"

“foo”应该失败

“foo”应该失败

“foo boo”应该成功

“foo boo moo”应该成功

1 个答案:

答案 0 :(得分:1)

当然,如果你可以使用代码,你只需要检查用空格分割是否会产生比1更多的块(没有空元素的分裂)。

  

我需要正则表达式,不能使用有关架构的c#代码

如果需要正则表达式来匹配任何字符串,该字符串可以包含2到35个以空格分隔的单词,其中包含" word"您可以使用的字符(即字母,数字或下划线)

@"^\w+(?:\s+\w+){1,34}$"

请参阅regex demo

如果您只需要允许字母或数字,请从\w

中减去下划线
@"^[\w-[_]]+(?:\s+[\w-[_]]+){1,34}$"
   ^^^^^^^^ 

另外,请注意[\w-[_]] = [^\W_](它有点短)。如果您只需要在单词之间允许1个单个空格,请在+之后删除\s

@"^[\w-[_]]+(?:\s[\w-[_]]+){1,34}$"
                ^^