【发布时间】:2013-04-16 14:52:54
【问题描述】:
我需要创建一个正则表达式,当它单独时将匹配字符“N”。到目前为止,我已经想出了表达式:"^[N]$",这似乎在这个例子中有效。它与其他三个不匹配,只是“N”。
public static void Main()
{
string[] words = new string[] { "42ND", "N", "WATERING", "ANONYMOUS"};
string pattern = @"^[N]$";
foreach (string word in words)
{
if( Regex.IsMatch(word, pattern))
{
Console.WriteLine(word + " Is a match");
}
}
}
任何人都可以从中找出任何问题或提供更好的问题吗?谢谢!
为了清楚起见进行编辑:
我只是想匹配"N" 的字母,仅此而已。它不应与“NN”、“NNN”或任何变体匹配,也不应与包含字母 "N" 的任何单词匹配。
【问题讨论】:
-
因为它是为了匹配单个“N”
-
word.IndexOf("N")>=0或word.Contains("N")? -
从您的问题中不清楚,您是否想要其他词匹配?还是您很高兴只有
"N"匹配? -
我只需要
"N"匹配项。 -
这看起来像是一个大学项目,如果是的话,我会考虑完全过度设计它:添加 i18n、并行性、安全性和一些过早的优化。