2016-07-06 30 views
-2

特殊文字の間にある部分を置き換える必要がある場合があります。 部分文字列と長さを使用して同じことができますが、それは汚い方法です。 正規表現を使用してこれを行うには、より良い方法はありますか?正規表現の特殊文字間の文字列を置換する正規表現#

文字列の私は、私も

Regex x = new Regex("(\\[CDATA\\])(.*?)(\\[\\]\\]\\])"); 
string Result = str1.Replace(text, "$1" + repl + "$3"); 
を試してみました次

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

のようないくつかの正規表現をしようとしました

This is the Replacement Text 

として出力を得るために正規表現を必要とする

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

です

結果が見つかりませんでした。 何か助けていただければ幸いです。

+0

'string.Replace'メソッドを使用しないと、Regex ' – MethodMan

+0

これは私が今やっていることですが、開始インデックス、終了インデックス、サブストリングを取得しなければならないので、非常に汚いです。だから正規表現を使って行うことができれば、汚れた部分はスキップすることができます – Gautam

+0

どこから 'text'が来るのですか?あなたのコードを表示すると、あなたの文字列のすべての例を表示して、期待される結果がどのように見えるのでしょうか – MethodMan

答えて

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

必要に応じて、古いテキスト(内括弧の間)はgroup1として利用できます($1で参照できる)