我正在寻找一个正则表达式,它寻找任何$$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