2016-10-04 10 views
0

中括弧で囲まれた文字列の特定の内容を外の値に置き換えようとする問題が発生しました。中括弧とその内容を文字列に置き換える方法

関連するコード例:中括弧内の名前が変更される可能性が、どのような名前、それは内に含まれることを考えると、値が「{内容}」交換する最良の方法をどのような

string value = "6"; 
string sentence = "What is 3 x {contents}"; 
# insert some sort of method sentence.replace(value,"{contents}"); 

中括弧。

正規表現を少し見て、私の考えが失われたか、私がやろうとしていることを達成するための関連する構文が見つからなかった。それを達成するための最善の方法は、そしてもしそうならば?これを達成するためのより良い方法は何でしょうか?

+0

http://stackoverflow.com/questions/16537901/c-sharp-regex-match-curly-brackets-contents-only-exclude-bracesを参照してください。 –

答えて

0

使用Regex.Replace

string value = "6"; 
string sentence = "What is 3 x {contents}"; 
var result = Regex.Replace(sentence, "{.*?}", value); // What is 3 X 6 

MSDNは、私はあなたが何をしたいのかを正しく理解していれば、正規表現

+0

ありがとう、この場合、正確には*何ですか?内容を追加することとは関係がありますが、各項目は個別に何を達成するのですか? – Zannith

+4

@Zannith:個々の小さな部分について個別に質問するのではなく、正規表現で下塗りを読むのが良い時期です。 –

+0

正規表現が間違っています。 "Example {text1} more text {text2}"を置き換えてみてください。 – enkryptor

0

あなたはこのコードを使用することができます:

Regex.Replace(input, @"{[^{}]+}", "new string"); 
1

を理解するために開始するには良い場所ですテキスト内の「{contents}」のすべてのインスタンスを置き換えたい場合は、2つの解決策があります。

関数は新しい文字列オブジェクトを返すこと

public static string InsertContent(string sentence, string placeholder, string value) 
{ 
    return sentence.Replace("{"+placeholder+"}", value); 
} 

注:シンプルstring.Replace(string, string)を1.Using

。ここでも、

public static string InsertContent(string sentence, string value) 
{ 
    Regex rgx = new Regex(@"\{[^\}]*\}"); 
    return rgx.Replace(sentence, value); 
} 

:あなたが指定した値によって、ブラケット間の何かを交換したい、あるいは単に括弧の間の文字列がどうなるかに制御することはできません2.Ifは

は、あなたもRegexを使用することができます関数は新しい文字列オブジェクトを返します。

関連する問題