正则表达式替换c#中特殊字符之间的字符串

时间:2016-07-06 21:00:53

标签: c# regex

我有一种情况,我有一个字符串,我必须替换位于特殊字符之间的部分。 我可以使用子串和长度来做同样的事情,但这是肮脏的方式。 有没有更好的方法来使用正则表达式?

e.g。字符串是

string str1 = "This is the <![CDATA[ SampleDataThatNeedsToBeReplaced ]]";
string repl = "Replacement Text";

我需要一个正则表达式来输出

This is the Replacement Text

我确实试过几个正则表达式,如下面的

 result = Regex.Replace(str1, @"(?<=CDATA\[)(\w+?)(?=\]\])", repl);

我也试过

Regex x = new Regex("(\\[CDATA\\])(.*?)(\\[\\]\\]\\])");
string Result = str1.Replace(text, "$1" + repl + "$3");

没有得到任何结果。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

Regex.Replace (
    "This is the <![CDATA[ SampleDataThatNeedsToBeReplaced ]]",
    @"<!\[CDATA\[(.+)]]",
    "Replacement Text");

请注意,如果您需要它;旧文本(在内部括号之间)可用作group1(因此可以通过$1引用)