目标是接收一个文本文件,将其标准化为仅包含所有大写字母,删除所有特殊字符,并将任何新行转换为单个空格。
这是我当前的混乱代码,据我所知它确实有用。
public string readTextFile(string fileName)
{
Regex rgx = new Regex("[^A-Z ]");
string txtFile = File.ReadAllText(fileName).ToUpper();
txtFile = Regex.Replace(txtFile, @"\s+", " ", RegexOptions.Multiline);
return rgx.Replace(txtFile, "");
}
寻找任何人帮助清理此代码,提高效率,并可能将我的正则表达式语句合并为一个。
答案 0 :(得分:1)
您可以合并正则表达式,并像这样使用Replace method with MatchEvaluator
public string readTextFile(string fileName)
{
Regex rgx = new Regex("");
string txtFile = File.ReadAllText(fileName).ToUpper();
txtFile = Regex.Replace(txtFile, @"(\s+)|([^A-Z ])",
m=> m.Groups[2].Success ? string.Empty : " ",
RegexOptions.Multiline);
return txtFile;
}