正则表达式替换[*

时间:2013-10-04 12:35:43

标签: c# regex

如何使用正则表达式替换以下模式的字符串

  

[* 1。引言*]

  
      
  1. 简介
  2.   

我简单地取代了它 通过

string s="[*1. Introduction*]";
s.Replace("[*", string.Empty).Replace("*]", string.Empty);

是否与c#中的正则表达式相同。

3 个答案:

答案 0 :(得分:4)

是..

 Regex.Replace(s,"^\\[\\*|\\*\\]$", string.Empty);

虽然我建议你坚持使用String Replace方法..

答案 1 :(得分:3)

使用正则表达式的优点是确保它不会替换自己发生的任何[**]。模式可以匹配两者的出现。

使用这种模式的限制是它无法处理嵌套的出现,例如"Some [*text [*with*] nested*] tags."

String.Replace相比,使用正则表达式的性能大致相同。创建正则表达式时会有一些开销,但在使用String.Replace时需要两次运行字符串。

使用正则表达式如下所示:

s = Regex.Replace(s, @"\[\*(.+)\*\]", "$1");

模式中的括号捕获标记内的内容,替换字符串中的$1使用捕获的内容替换整个标记。

答案 2 :(得分:1)

就像@BenRobinson说的那样,顺便说一下我不知道:D

string s = " [*1. Introduction*] ".Trim(' ', '[', ']', '*');