Удаление двойных кавычек из строки in.NET
Я пытаюсь сопоставить некоторые непоследовательно отформатированные HTML и нужно удалить некоторые двойные кавычки.
Current:
<input type="hidden">
Цель:
<input type=hidden>
Это неправильно, потому что я не побегу его правильно:
s = S. заменить(""","");
это неправильно, потому что нет пустого символа (насколько мне известно):
s = s.Replace('"', '');
что такое синтаксис / escape-кодировка для замена двойных кавычек пустой строкой?
11 ответов:
Я думаю, что ваша первая строка действительно будет работать, но я думаю, что вам нужно четыре кавычки для строки, содержащей один (по крайней мере, в VB):
s = s.Replace("""", "")
для C# вы должны были бы избежать кавычки, используя обратную косую черту:
s = s.Replace("\"", "");
вы можете использовать любой из этих:
s = s.Replace(@"""",""); s = s.Replace("\"","");
...но мне действительно интересно, почему вы хотите это сделать? Я думал, что это хорошая практика, чтобы хранить значения атрибутов в кавычках?
Я не видел, чтобы мои мысли уже повторялись, поэтому я предлагаю вам посмотреть на
string.Trim
в документации Microsoft для C# вы можете добавить символ для обрезки, а не просто обрезать пустые места:string withQuotes = "\"hellow\""; string withOutQotes = withQuotes.Trim('"');
должно привести к withOutQuotes быть
"hello"
вместо""hello""
это сработало для меня
//Sentence has quotes string nameSentence = "Take my name \"Wesley\" out of quotes"; //Get the index before the quotes`enter code here` int begin = nameSentence.LastIndexOf("name") + "name".Length; //Get the index after the quotes int end = nameSentence.LastIndexOf("out"); //Get the part of the string with its quotes string name = nameSentence.Substring(begin, end - begin); //Remove its quotes string newName = name.Replace("\"", ""); //Replace new name (without quotes) within original sentence string updatedNameSentence = nameSentence.Replace(name, newName); //Returns "Take my name Wesley out of quotes" return updatedNameSentence;
s = s.Replace( """", "" )
две кавычки рядом друг с другом будут функционировать как предполагаемый " символ, когда внутри строки.
Если вы хотите удалить кавычки только с концов строки (а не с середины), и есть вероятность, что в любом конце строки могут быть пробелы (т. е. разбор файла формата CSV, где есть пробел после запятых), то вам нужно вызвать функцию Trim два раза...например:
string myStr = " \"sometext\""; //(notice the leading space) myStr = myStr.Trim('"'); //(would leave the first quote: "sometext) myStr = myStr.Trim().Trim('"'); //(would get what you want: sometext)