我有一种情况,我有一个字符串,我必须替换位于特殊字符之间的部分。 我可以使用子串和长度来做同样的事情,但这是肮脏的方式。 有没有更好的方法来使用正则表达式?
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");
没有得到任何结果。 任何帮助表示赞赏。
答案 0 :(得分:1)
Regex.Replace (
"This is the <![CDATA[ SampleDataThatNeedsToBeReplaced ]]",
@"<!\[CDATA\[(.+)]]",
"Replacement Text");
请注意,如果您需要它;旧文本(在内部括号之间)可用作group1(因此可以通过$1
引用)