カスタムタグを文字列で取得して置き換えるエレガントな方法はありますか?
例えば
"some long text [o:prop] and [u:date]"
結果配列:
- 「[o:prop]」
- 「[u:日付]」
ありがとう
@"\[[a-z]:[a-z]{4}\]"
は、1 つの小文字の後にコロンが続き、その後に 4 つの小文字が続き、すべてが角かっこで囲まれていると想定しています。
常に危険ですが、次のような正規表現を使用できます。
"\\[(.*?)]"
グローバル修飾子で。
より安全:\\[(o:prop|u:date)]
試す
var replacements = new Dictionary<string,string> {
{"[o:prop]","FISH"},
{"[u:date]","2013-04-12"}
};
var testString = "some long text [o:prop] and [u:date]";
var result= new Regex(@"\[[^[]*?]").Replace(
testString,
match => replacements.ContainsKey(match.Value) ? replacements[match.Value] : match.Value);