c# - 基本正则表达式帮助

标签 c# regex

我正在尝试匹配名称模式。一个名字可以是

lastname,firstname middleinitial

lastname,firstname

我正在尝试创建一个正则表达式来检查字符串的最后 2 个字符是 [space][anychar]

我在网上找到了一个教程,上面说要将 A 匹配到你做的字符串的末尾

 A$

"A" at the end of a line

在将此应用到我的过程中,我尝试做这样的事情,并且还有很多形式。我真的不知道 :/

([\\s][A-Za-z]$) 

最佳答案

无需正则表达式即可轻松检查最后两个字符。

bool hasMiddleInitial = false;
if (name.Length > 1 &&
    name[name.Length-2] == ' ' &&
    char.IsLetter(name, name.Length-1))
{
    hasMiddleInitial = true;
}

这比正则表达式更清晰(更具可读性)并且执行速度更快。它让您不必担心非英文字母(A-Z 是一个非常有限的集合!)。

(附:您也可以使用 char.IsWhiteSpace 而不是直接与 ' ' 进行比较;这样它也可以与其他空格字符一起使用。例如,亚洲用户可能输入 U+3000 表意空间而不是标准的 U+0020 空间。)

关于c# - 基本正则表达式帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5141266/

相关文章:

c# - 是否可以绑定(bind)到 XAML 中的 System.Windows.Interactivity.Behavior?

c# - 如何从 MVC3 中的 javascript 调用 Controller 方法?

javascript - 正则表达式捕获捕获组中的所有内容(包括换行符)

javascript - 使用 JavaScript RegEx 检索第一段标签内的内容

c# - MonoMac 项目中的自定义选项卡

c# - 解决 ||检查字符串时的运算符

c# - 在 WinDbg 中显示 C# 堆栈跟踪时出现问题

php - 使用正则表达式从 HTML 页面中提取 JSON (PHP)

c# - 我可以在 C# 中将 json 反序列化为匿名类型吗?

python - 删除紧邻单词之前的数字