在某些字符之前添加反斜杠

时间:2011-09-07 05:41:01

标签: c# regex string

给定字符串“a | bc \ de,fg~h,ijk,lm | no \ p”在'|'之前添加'\'的最佳方法是什么',''〜'和'\'

所以结束字符串是“a \ | bc \ de \,fg \ ~h \,ijk \,lm \ | no \ p”

这样做的最佳方式是什么?

我在c#中需要这个。

然后我还需要一种方法来在JavaScript中获取此字符串并删除所有额外的反斜杠。

提前谢谢。

修改

任何人都可以帮助我使用javacsript函数来回复原来的字符串,取消额外的\吗?

3 个答案:

答案 0 :(得分:2)

正则表达式会有点矫枉过正。使用String.Replace Method (String, String)

string myString = @"a|bc\de,fg~h,ijk,lm|no\p";

myString = myString.Replace("|", "\\|").Replace(",", "\\,").Replace("~", "\\~").Replace("\\", "\\\\");

这会产生"a\|bc\\de\,fg\~h\,ijk\,lm\|no\\p"

可能有多种方法可以为JavaScript获取字符串。这取决于您生成字符串的位置。为了便于说明,假设您在后面的代码中生成字符串并将其置于客户端的某些控件(可能是隐藏字段)中。

在客户端中,您将获得字符串并使用Javascript String.Replace方法,如下所示,假设str1为"a\|bc\\de\,fg\~h\,ijk\,lm\|no\\p"

str1 = str1.Replace("\,", ",");
str1 = str1.Replace("\|", ",");
str1 = str1.Replace("\\", "\");

自从我完成JavaScript以来已经有一段时间了,所以您可能需要使用另一个反斜杠来逃避反斜杠(例如\\)。

答案 1 :(得分:1)

无需单独转义所有字符,将@放在字符串之前,例如:

string String = @"a|bc\de,fg~h,ijk,lm|no\p";

答案 2 :(得分:0)

如果只需要转义Regex system characters,则可以像这样使用方法Escape

String str1= Regex.Escape("your string with \ - +");