我正在尋找一個正則表達式,它尋找任何$$some_val$$
並用大寫字母替換some_val
。正則表達式到分隔符之間的大寫
例如輸入爲: -
<p><a href='accept/272/$$id$$'>YES</a></p>
<p>Hi $$FirstName$$ some more text $$date$$ lorem ipsum</p>
<h1>$$club$$</h1>
$$content$$
將輸出: -
<p><a href='accept/272/$$ID$$'>YES</a></p>
<p>Hi $$FIRSTNAME$$ some more text $$DATE$$ lorem ipsum</p>
<h1>$$CLUB$$</h1>
$$CONTENT$$
此刻我有以下的正則表達式: -
var html = Regex.Replace(html, @"\$\$(.*)\$\$", m=> m.Value.ToUpper());
但它產生的錯誤的結果。
<p><a href='accept/272/$$ID$$'>YES</a></p>
<p>Hi $$FIRSTNAME$$ SOME MORE TEXT $$DATE$$ lorem ipsum</p>
<h1>$$CLUB$$</h1>
$$CONTENT$$
因爲SOME MORE TEXT
也在開始和結束$$分隔符之間大寫。
請注意,$$可能會重新出現在一行或開始/結束一行。
啊貪心是我的失敗!謝謝你會嘗試一下。 – Rippo 2013-03-04 16:13:09
與所有字符串操作一樣,輸出將根據區域設置而有所不同。從長遠來看,指定區域設置(或不變量)可能會更好。 – spender 2013-03-04 16:15:26
順便說一句,我剛剛注意到你不使用'(。*)',而只是'。*',我認爲它與我使用的無關。 – Rippo 2013-03-06 15:47:53