我正在通过使用C#创建表来为配置单元生成SQL查询。表的模式存储在文件中,该文件具有表属性和定界符信息。生成查询时,我从文件中读取时指定了定界符,但是它直接作为制表符添加,而不是'\t'
作为制表符作为定界符添加。
起初,我尝试在开始处使用@,但不适用于@"{varname}"
格式。它确实与直接在字符串中使用的'\t'
一起工作。 (@"'\t'"
)。现在,我已经设置了一个条件,可以直接将'\t'
插入字符串而不是{varname}
。
string delimiter = fileSchema.delimiter.ToString();
string loc = $@"delimited fields terminated by '{delimiter}'"; // generated
//"delimited fields terminated by ' '"
//workaround for now:
string delimiter = fileSchema.delimiter.ToString();
string loc = delimiter.Equals("\t") ? @"delimited fields terminated by '\t'" : $@"delimited fields terminated by '{delimiter}'";
应该使用 '\t'
而不是实际的标签
答案 0 :(得分:2)
我有一个定界符,当前是一个制表符(“ \ t”),我想获取 该字符串的转义版本(“ \ t” / @“ \ t”,即“斜杠t”)- 我该怎么办?
您可以使用System.Text.RegularExpressions
将string
转换为转义形式string
string delimiter = Regex.Escape("\t\n");
Console.WriteLine(Regex.Escape(delimiter));
//output: \t\n
答案 1 :(得分:0)
我认为你的意思是:
我有一个
l = ['elt9', 'elt19', 'elt1', 'elt2', 'elt3','elt9','elt2'] sorted(set(l), key=lambda x: int(x[3:])) ['elt1', 'elt2', 'elt3', 'elt9', 'elt19']
,目前是一个制表符(delimiter
),我想获取该字符串的转义版本("\t"
/"\\t"
,即“斜杠t”)-我该怎么做?
那是对的吗?如果是这样,下一个问题将变成“使用哪个转义规则?” -大概是指C#转义规则,但是不同的.NET语言可以具有不同的规则,因为这是编译问题。实际上,对此没有预滚动的API,因此最好的选择是编写自己的转义代码来处理您期望的标记,然后将其替换为期望的转义形式。