c#-4.0 - 正则表达式查找名字后的中间首字母
问题描述
语言 C#。在文本框的“离开”事件中,我使用正则表达式来尝试在名字和空格之后找到一个中间首字母。如果找到匹配项,我将在 FirstName 和 MI 的开头字符的 TitleCase 中添加句点“。” 中间首字母之后。否则,我只是 TitleCase FirstName。
我在下面显示了我的代码的一部分:
private void FirstName_Leave(object sender, EventArgs e)
{
//Regex looks for a single letter following first name, i.e.
//middle initial, and adds a '.' period after the letter.
Match match = Regex.Match(FirstName.Text, @"\w+\s[a-zA-Z]");
if (match.Success)
{
FirstName.Text = ReturnTitleCase(FirstName.Text + ".");
}
else
{
FirstName.Text = ReturnTitleCase(FirstName.Text);
}
}
当最终用户在名字之后只输入一个字符时,这很好用,即 Mike E。但是,如果用户输入完整拼写的中间名,例如 Mike Edward,则在中间名之后输入一个句点,例如 '迈克·爱德华。
我还尝试了其他正则表达式语法,如下所示,来自 StackOverFlow 站点,如下所示。在 FirstName 中查找一个或多个字符,然后是一个或多个空格字符,然后是一个单词字符。但是,这又增加了一个句号“.”。在一个拼写出来的中间名之后。
Match match = Regex.Match(FirstName.Text, @"\w+[a-zA-Z]\s+\w?[a-zA-Z]");
有人可以建议一种正则表达式语法,它只检查名字之后的单个字符,但会忽略任何比单个字符中间首字母更长的东西吗?
解决方案
推荐阅读
- c - C:二维数组上的嵌套循环给出了意想不到的结果
- c - 为什么 open() 永远不会返回?
- python - 使用 Python3 和 Selenium 4 chrome 旋转用户代理
- python - 向 seaborn 箱线图添加自定义图例
- entity-framework - 删除表中的列表会引发 SQL 错误
- r - 将季度年份转换为R中季度的最后日期
- c# - 为什么在带有查找字段的创建请求中出现类型不匹配错误?
- javascript - 在 laravel Blade 的 foreach 循环中使用 javascript 函数
- html - 如何访问 HTML 中的根目录?(使用 / 不起作用)
- c# - 在环境变量 ASP.Net MVC 应用程序中正确存储数据库连接字符串