我正在尝试用正则表达式检查多个单词,但我不能。
@"[^a-zA-Z0-9\s].{1,35}"
“foo”应该失败
“foo”应该失败
“foo boo”应该成功
“foo boo moo”应该成功
答案 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}$"
^^