Добавьте обратную косую черту перед некоторыми символами - PullRequest
0 голосов
/ 07 сентября 2011

Учитывая строку "a | bc \ de, fg ~ h, ijk, lm | no \ p", каков наилучший способ добавить '\' перед '|' ',' '~' и '\'

Таким образом, конечная строка будет "a \ | bc \ de \, fg \ ~ h \, ijk \, lm \ | no \ p"

Каков наилучший способ сделать это?

Мне нужно это в c #.

Тогда мне также нужен способ получить эту строку в JavaScript и удалить все лишние косые черты.

Заранее спасибо.

EDIT

Может ли кто-нибудь помочь мне с функцией javacsript, которая вернет мне исходную строку, снимая лишнюю \?

Ответы [ 3 ]

2 голосов
/ 07 сентября 2011

Regex будет излишним.Использовать метод String.Replace (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 голос
/ 07 сентября 2011

Не нужно экранировать все символы отдельно, поставьте @ перед строкой, например:

string String = @"a|bc\de,fg~h,ijk,lm|no\p";
0 голосов
/ 16 января 2019

Если вам нужно выбрать только Regex system characters, вы можете использовать метод Escape, например:

String str1= Regex.Escape("your string with \ - +");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...