【发布时间】:2011-05-17 02:57:43
【问题描述】:
查看这个java代码:-
s = s.replaceAll( "\\\\", "\\\\\\\\" ).replaceAll( "\\$", "\\\\\\$" );
我有点不明白。这是一个正则表达式替换所有。
我已经尝试了以下 C# 代码...
text = text.RegexReplace("\\\\", "\\\\\\\\");
text = text.RegexReplace("\\$", "\\\\\\$");
但如果我有以下单元测试:-
} ul[id$=foo] label:hover {
java代码返回:} ul[id\$=foo] label:hover {
我的 c# 代码返回:} ul[id\\\$=foo] label:hover {
所以我不确定我是否理解为什么我的 c# 代码会添加更多 \,主要是关于这些控制字符的表示方式.. ??
更新:
所以,当我使用 XXX 仅使用 text.Replace(..) 的想法时,这可行。
例如。
text = text.Replace("\\\\", "\\\\\\\\");
text = text.Replace("\\$", "\\\\\\$");
但我希望坚持使用 RegEx... 尝试使其尽可能接近 Java 代码。
正在使用的扩展方法是...
public static string RegexReplace(this string input,
string pattern,
string replacement)
{
return Regex.Replace(input, pattern, replacement);
}
嗯...
【问题讨论】: