簡體   English   中英

如何避免使用多個regex.replace

[英]How to avoid using multiple regex.replace

目標是獲取一個文本文件,將其規范化為僅包含所有大寫字母,刪除所有特殊字符,然后將任何新行轉換為一個空格。

就我所知,這是我目前執行的混亂代碼。

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, "");
}

尋找任何人來幫助清理此代碼,提高效率,並可能將我的regex語句合並為一個。

您可以合並您的正則表達式,並像這樣將Match方法與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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM