簡體   English   中英

查找並替換段落中的字符串

[英]Find and replace the string in paragraph

我想清空連字符之間的值,例如需要清除連字符前綴和后綴范圍之間的數據,然后使其具有空字符串。


string templateContent = "Template content -macro- -UnitDetails- -testEmail- sending Successfully";

輸出

templateContent = "Template content sending Successfully";
templateContent = Regex.Replace(templateContent, @"-\w*-\s?", string.Empty).TrimEnd(' ');

@"-\\w*-\\s" - 是 '-Word- ' 的正則表達式模式
- - 模式-
\\w -單詞字符
* - 零或任何出現的\\w
\\s -空白字符的模式
? - 將\\s標記為可選
TrimEnd(' ') - 如果字符串末尾有模式,則刪除尾隨空格

有很多方法可以做到這一點,但是鑒於您的示例,以下應該有效

var split = templateContent
      .Split(' ')
      .Where(x => !x.StartsWith("-") && !x.EndsWith("-"));

var result = string.Join(" ",split);

Console.WriteLine(result);

輸出

Template content sending Successfully

完整演示在這里

注意:我個人認為正則表達式更適合於此

var resultWithSpaces = Regex.Replace(templateContent, @"-\S+-", string.Empty);

此正則表達式查找圍繞一個或多個非空格字符的兩個連字符。

它將留下已刪除單詞周圍的空格。 為了擺脫那些你可以做另一個正則表達式用一個空格替換多個空格。

var result = Regex.Replace(resultWithSpaces, @"\s+", " ");

您可以為此使用正則表達式

    string regExp = "(-[a-zA-Z]*-)";
    string tmp = Regex.Replace(templateContent , regExp, "");
    string finalStr = Regex.Replace(tmp, " {2,}", " ");

暫無
暫無

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

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