#c# #asp.net #regex
#c# #asp.net #регулярное выражение
Вопрос:
string inputString = "1/10 EP Sp'arrowha?wk XT R;TR 2.4GHz Red";
//Characters Collection: (';', '', '/', ':', '*', '?', ' " ', '<', '>', '|', 'amp;', ''')
string outputString = "1 10 EP Sp arrowha wk XT R TR 2.4GHz Red";
Комментарии:
1. Вы случайно не пытаетесь выполнить какое-то экранирование для SQL?
2. Я знаю, что опаздываю на вечеринку, но … это вопрос? С 9 голосами «за»? Боже милостивый!
Ответ №1:
Полное раскрытие следующего кода:
- Это не тестировалось
- Вероятно, я перепутал символ, экранирующий в
new Regex(...)
; -
На самом деле я не знаю C #, но могу поискать в Google
"C# string replace regex"
и перейти на MSDNRegex re = new Regex("[;\/:*?"<>|amp;']"); string outputString = re.Replace(inputString, " ");
Вот правильный код:
string inputString = "1/10 EP Sp'arrowha?wk XT R;TR 2.4GHz R\ed";
Regex re = new Regex("[;\\/:*?"<>|amp;']");
string outputString = re.Replace(inputString, " ");
// outputString is "1 10 EP Sp arrowha wk XT R TR 2.4GHz R ed"
Демонстрация: http://ideone.com/hrKdJ
Комментарии:
1. Переместите
'
внутрь класса char, также я бы использовал, например
"[;\/:*?"<>|amp;'] "
2. @Мэтт Болл, я понимаю, что ты, вероятно, расстроен тем, что OP не погуглил первым, но это не значит, что ты должен быть злым или саркастичным.
3. @Xaisoft это подразумевалось как раскрытие информации, никакого негатива вообще не предполагалось. Я изменил его формулировку; пожалуйста, дайте мне знать, если оно все еще плохо работает.
4. @Мэтт Болл, все хорошо. Я не думал, что вы настроены негативно, я думал, вы расстроены тем, что люди хотя бы не пытаются перед публикацией.
5. Что, если бы я захотел заменить [и]?
Ответ №2:
string outputString = Regex.Replace(inputString,"[;/:*?""<>|amp;']",String.Empty)
Ответ №3:
Вот Java-код для замены специальных символов
String inputString = "1/10 EP Sp'arrowha?wk XT R;TR 2.4GHz R\ed";
String re = "[;\\/:*?"<>|amp;']";
Pattern pattern = Pattern.compile(re);
Matcher matcher = pattern.matcher(inputString);
String outputString = matcher.replaceAll(" ");