Желаемый результат: это образец
Заданная строка: "This is a \"sample\""
Проблема: у вас есть экранирующие символы, защищающие двойные кавычки от интерпретации. escape-символ \
- это инструкция буквально использовать кавычку вместо того, чтобы указывать разрыв строки. Это означает, что фактическое строковое значение равно "This is a "sample""
, когда используется в качестве вывода.
Ответ, удаляющий \
, может работать, но он делает для вонючего кода, потому что удаление escape-символа таким способом может сделать неясным, что вы намереваетесь, и мешает вам избежать любого символа ,
Удаление "
может сработать, хотя оно не позволяет использовать какие-либо кавычки, и некоторые IDE могут оставить escape-символ, чтобы испортить вам день.
Мы хотим одну конкретную цель, кавычки вокруг «образца».
string sample = "This is a \"sample\"";
List<string> sampleArray = sample.Split(' ').ToList(); // samplearray is now split into ["This", "is", "a", "\"sample\""]
var x = sampleArray.FirstOrDefault(t => t == "\"sample\""); //isolate our needed value
if (x != null) //prevent a null reference in case something went wrong and samplearray wasnt as expected
{
var index = sampleArray.IndexOf(x); //get the location of the value we just picked
x = x.Replace("\"", string.Empty); //replace chars
sampleArray[index] = x; //assign new value to the list
}
return String.Join(" ", sampleArray); //return the string joined together with spaces.
Это должно сделать это:
<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
version="1.0.0">
<template name="das" surround="true" invoke="auto">
<description>
MP: TDeviceAnsiString
</description>
<author>
Mike rev François
</author>
<code language="Delphi" delimiter="|"><![CDATA[TDeviceAnsiString(|end||selected|)]]>
</code>
</template>
</codetemplate>
Добавленный: можно найти больше информации о Delphi Wiki с LiveTemplates Технический Infos