正则表达式使用Match计算字符串字符

时间:2018-10-17 03:15:32

标签: c# regex

我需要检查string是否恰好包含5个字符。如果是这样,我需要返回true。

string name = "Perry";

我只需要在这里使用正则表达式。

 var re = Regex.Match(name, "^.{1,5}$");

但是,如果字符在1和5范围内,则返回true。我期望只有包含5个字符的结果才返回true。我该怎么办?

4 个答案:

答案 0 :(得分:4)

^.{1,5}$表示您的字符串可以包含1到5个字符。您可以使用^.{5}$精确输入5个字符。

答案 1 :(得分:1)

Regex.IsMatch("Perry", "^.{5}$");

答案 2 :(得分:0)

我想,您可以简单地做到这一点:

string name = "Perry";
if(name.Length == 5)

.{5}将匹配5个长度的任何字符。如果只需要字母数字字符,则可以使用:

^[A-Za-z0-9]{5}$

答案 3 :(得分:0)

  

我希望结果仅在包含5个字符的情况下才返回true。

但是哪些字符有效? \n在这里有效吗?
如是;然后使用^[\S\s]{5}$之类的正则表达式代替

^         asserts position at start of the string
[\S\s]    matches any whitespace or non-whitespace character 
{5}       matches exactly 5 times
$         asserts position at the end of the string

可能有意义的其他一些选择是:

.       matches any character (except for line terminators) ([\r\f\v] are also valid here)   
\w      matches any word character (equal to [a-zA-Z0-9_]) -> recommended
\S      matches any non-whitespace character (equal to [^\r\n\t\f\v ])