我正在尝试匹配名称模式。一个名字可以是
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/