如何使用正则表达式如下模式来替换字符串正则表达式替换[*
[* 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调用,但不会替换。 –