在r中使用gsub函数删除斜杠
假设我有一个包含以下字符的字符串在r中使用gsub函数删除斜杠,r,regex,gsub,string-substitution,R,Regex,Gsub,String Substitution,假设我有一个包含以下字符的字符串 "\"------------080209060700030309080805\"" 现在我想在r中使用gsub函数删除“\和\”部分,只保留以下字符: "------------080209060700030309080805\" 有人能帮我弄清楚我该如何正确地操作吗?stringstring编辑1:修复错误(在字符串中创建反斜杠需要两个反斜杠): string <- "\\------------080209060700030309080805\\
"\"------------080209060700030309080805\""
现在我想在r中使用gsub函数删除“\和\”部分,只保留以下字符:
"------------080209060700030309080805\"
有人能帮我弄清楚我该如何正确地操作吗?
stringstring编辑1:修复错误(在字符串中创建反斜杠需要两个反斜杠):
string <- "\\------------080209060700030309080805\\"
string <- gsub("^\\\\(.*)\\\\$", "\\1", string)
因此,必须在带引号的字符串中使用两个反斜杠才能在内部创建一个反斜杠。如果打印此字符串,将再次转义反斜杠,这看起来很混乱:
> print('\\"')
[1] "\\\""
如果要打印字符串的未缩放内容,请使用cat
而不是print
:
> cat('\\"')
\"
有关更多信息,请参阅R:?“”
“中的帮助:
字符常数
单引号和双引号分隔字符常量。它们可以被使用
可以互换,但最好使用双引号(和字符
常量使用双引号打印),因此单引号
通常仅用于分隔包含双精度的字符常量
引用
反斜杠用于在字符内部开始转义序列
常数。转义不在下表中的字符是错误的
错误
单引号需要在单引号中用反斜杠转义
字符串,以及双引号字符串中的双引号
\n换行符\r回车符\t制表符\b退格符\a警报(贝尔)
\f表单提要\v垂直选项卡\反斜杠\\'ASCII撇号'
\“ASCII引号”`ASCII严重重音(反勾号)`\nnn
具有给定八进制代码的字符(1、2或3位)\xnn字符
使用给定的十六进制代码(1或2个十六进制数字)\n使用
给定代码(1--4个十六进制数字)\nnnn具有给定字符的Unicode字符
代码(1--8个十六进制数字)
编辑1:修复了错误(在字符串中创建反斜杠需要两个反斜杠):
因此,必须在带引号的字符串中使用两个反斜杠才能在内部创建一个反斜杠。如果打印此字符串,将再次转义反斜杠,这看起来很混乱:
> print('\\"')
[1] "\\\""
如果要打印字符串的未缩放内容,请使用cat
而不是print
:
> cat('\\"')
\"
有关更多信息,请参阅R:?“”
“中的帮助:
字符常数
单引号和双引号分隔字符常量。它们可以被使用
可以互换,但最好使用双引号(和字符
常量使用双引号打印),因此单引号
通常仅用于分隔包含双精度的字符常量
引用
反斜杠用于在字符内部开始转义序列
常数。转义不在下表中的字符是错误的
错误
单引号需要在单引号中用反斜杠转义
字符串,以及双引号字符串中的双引号
\n换行符\r回车符\t制表符\b退格符\a警报(贝尔)
\f表单提要\v垂直选项卡\反斜杠\\'ASCII撇号'
\“ASCII引号”`ASCII严重重音(反勾号)`\nnn
具有给定八进制代码的字符(1、2或3位)\xnn字符
使用给定的十六进制代码(1或2个十六进制数字)\n使用
给定代码(1--4个十六进制数字)\nnnn具有给定字符的Unicode字符
代码(1--8个十六进制数字)
“------08020906700030309080805\”
结果看起来像是一个打字错误:您真的希望最后一个反斜杠成为结果的一部分吗?请编辑您的答案…请用纯文本向我们显示输入和输出应该是什么。不必担心在R中转义。这里的输入是如下所示的:“\”————————————————————————————————————————————————————————————————————————————————————。我想用gsub函数只抓取“-----------08020906700030309080805”部分,这意味着我想去掉这里的斜杠,但目前看来我没有一个好的方法来做到这一点\“
结果看起来像是输入错误:您真的希望最后一个反斜杠成为结果的一部分吗?请编辑您的答案…请用纯文本向我们显示输入和输出应该是什么。不必担心在R中转义。这里的输入是如下所示的:“\”————————————————————————————————————————————————————————————————————————————————————。我想使用gsub函数只抓取“------08020906070030309080805”部分,这意味着我想去掉这里的斜杠,但目前看来我没有一个好的方法来做这件事。
> cat('\\"')
\"