如何使用正则表达式替换以下模式的字符串
[*1。介绍*]
至
- 介绍
我已经简单地将它替换为
string s="[*1. Introduction*]";
s.Replace("[*", string.Empty).Replace("*]", string.Empty);
在 c# 中使用正则表达式是否与此等效。
是的..
Regex.Replace(s,"^\\[\\*|\\*\\]$", string.Empty);
虽然我建议你坚持使用 String 的 Replace 方法..
为此使用正则表达式的优点是确保它不会替换任何[*
或*]
它们会自行发生的内容。该模式可以匹配两者的出现。
使用这种模式的一个限制是它不能处理嵌套的事件,例如"Some [*text [*with*] nested*] tags."
.
相比,使用正则表达式的性能String.Replace
大致相同。创建正则表达式时会有一些开销,但是在使用String.Replace
.
使用正则表达式如下所示:
s = Regex.Replace(s, @"\[\*(.+)\*\]", "$1");
模式中的括号捕获标签内的内容,$1
替换字符串中使用捕获的内容替换整个标签。
就像@BenRobinson 说的那样,顺便说一句我不知道这个:D
string s = " [*1. Introduction*] ".Trim(' ', '[', ']', '*');