C#正则表达式匹配15个字符,单个空格,字母数字

前端之家收集整理的这篇文章主要介绍了C#正则表达式匹配15个字符,单个空格,字母数字前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在C#中使用 Regex在以下条件下匹配字符串:

>整个字符串只能是字母数字(包括空格).
>最多不超过15个字符(包括空格).
>第一&最后一个字符只能是一个字母.
>单个空格可以在任何地方多次出现,但字符串的第一个和最后一个字符. (不应允许多个空格在一起).
>应忽略资本化.
>应匹配整个单词.

如果这些先决条件中的任何一个被破坏,则不应该进行匹配.

这是我目前拥有的:

^\b([A-z]{1})(([A-z0-9 ])*([A-z]{1}))?\b$

以下是一些应该匹配的测试字符串:

> Stack OverFlow
>我最大的
> A.
>超人23
>一二三

还有一些不应该匹配(注意空格):

> Stack [double_space]溢出岩石
> 23你好
> ThisIsOver15CharactersLong
>你好23
> [space_here]嘿

等等

任何建议将不胜感激.

解决方法

你应该使用前瞻
|->matches if all the lookaheads are true
                                                               --
^(?=[a-zA-Z]([a-zA-Z\d\s]+[a-zA-Z])?$)(?=.{1,15}$)(?!.*\s{2,}).*$
-------------------------------------- ----------  ----------
                 |                       |           |->checks if there are no two or more space occuring
                 |                       |->checks if the string is between 1 to 15 chars
                 |->checks if the string starts with alphabet followed by 1 to many requireds chars and that ends with a char that is not space

你可以尝试here

原文链接:/csharp/244289.html

猜你在找的C#相关文章