如何使用正则表达式替换以下模式的字符串
[* 1。引言*]
到
- 简介
醇>
我简单地取代了它 通过
string s="[*1. Introduction*]";
s.Replace("[*", string.Empty).Replace("*]", string.Empty);
是否与c#中的正则表达式相同。
答案 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(' ', '[', ']', '*');