如何使用正則表達式如下模式來替換字符串正則表達式替換[*
[* 1。簡介*]
到
- 簡介
我已經 通過
string s="[*1. Introduction*]";
s.Replace("[*", string.Empty).Replace("*]", string.Empty);
簡單地更換它的任何等同此USI在C#中正則表達式。
如何使用正則表達式如下模式來替換字符串正則表達式替換[*
[* 1。簡介*]
到
- 簡介
我已經 通過
string s="[*1. Introduction*]";
s.Replace("[*", string.Empty).Replace("*]", string.Empty);
簡單地更換它的任何等同此USI在C#中正則表達式。
使用這個正則表達式的優勢,將確保它不會取代任何[*
或*]
將自行發生。該模式可以匹配兩者的發生。
使用這種模式的一個限制是它不能處理嵌套的發生,例如, "Some [*text [*with*] nested*] tags."
。
與String.Replace
相比,使用正則表達式的性能大致相同。創建正則表達式時會有一些開銷,但在使用String.Replace
時,需要遍歷字符串兩次。
使用正則表達式應該是這樣的:
s = Regex.Replace(s, @"\[\*(.+)\*\]", "$1");
在模式中的括號捕獲標籤內有什麼,以及$1
在替換字符串中使用什麼被抓獲更換整個標籤。
就像說@BenRobinson,順便說一句,我不知道這一點:d
string s = " [*1. Introduction*] ".Trim(' ', '[', ']', '*');
您的代碼將工作,你可以使用正則表達式也這樣做。哪一個會更好取決於你想要做什麼。對於簡單的文本行,我可能會使用您的代碼。如果你有一個龐大的文件來處理我可能會將其表達。 –
@BenRobinson s.Trim('[','*');也會對樣本字符串進行處理。 – Gusdor
@Gusdor我認爲它需要s.Trim('[','*',']'),但正如你所說,它可以在「示例字符串」上工作,如果這就是所需要的。例如在字符串的開頭或結尾會有一個額外的空格會打斷Trim調用,但不會替換。 –