首页 > 解决方案 > 正则表达式匹配称呼

问题描述

我使用了以下正则表达式:

[RegularExpression(@"^(Mr. .*|MR. .*|MRS. .*|Mrs. .*|MS. .*|Ms. .*|DR. .*|Dr. .*)", ErrorMessage = "Greeting must begin with Mr., Mrs., Ms., or Dr. and be followed by a name.")]
 public string? Greeting { get; set; }

如何强制用户在Mr., MR., MRs.,之后输入空格Mrs.,然后在空格后至少输入一个字符。

例如:如果他们输入Mr. Joe DoeMr. Joe有效但他们Mr.只输入空格或Mr.不输入空格无效。

标签: c#asp.netregexregular-language

解决方案


你可以尝试这样的事情开始

^[Mr\.]+[ ]+[A-Za-z]{0,25}[ ]?[A-za-z]{1,25}

这应该与您提供的用例相匹配。

反斜杠转义句点,因此它与文字句点匹配。

花括号给出了它之前的分组允许有多少模式的范围。

问号使其前面的括号分组成为可选的。

另外,给这个网站一个机会来实时试用你的正则表达式。https://regexr.com/


推荐阅读