-1

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

[*1。介绍*]

  1. 介绍

我已经简单地将它替换为

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

在 c# 中使用正则表达式是否与此等效。

4

3 回答 3

4

是的..

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

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

于 2013-10-04T12:39:00.063 回答
3

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

使用这种模式的一个限制是它不能处理嵌套的事件,例如"Some [*text [*with*] nested*] tags.".

相比,使用正则表达式的性能String.Replace大致相同。创建正则表达式时会有一些开销,但是在使用String.Replace.

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

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

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

于 2013-10-04T12:46:12.360 回答
1

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

string s = " [*1. Introduction*] ".Trim(' ', '[', ']', '*');
于 2013-10-04T13:04:43.413 回答