如何用“\&”替换“&”
How to replace "&" with "\&"
我发现很难用 "\&"
替换 "&"
使用 R 的 base
gsub()
函数 -
gsub("&", "\&", "A&B")
给出以下错误-
Error: '\&' is an unrecognized escape in character string starting ""\&"
有什么办法可以实现这种替换吗?
您可以使用
gsub("&", "\&", "A&B",fixed=TRUE) # Fixed string replacement
gsub("(&)", "\\\1", "A&B") # Regex replacement
固定字符串替换很清楚:每个&
被替换为一个\&
。双 \
用于字符串文字中以表示文字 \
.
在正则表达式替换中,&
被匹配并捕获到组 1 中。由于反斜杠是正则表达式替换模式中的特殊字符,因此必须加倍,并且 - 请记住文字反斜杠在字符串文字中用 \
定义 - 我们需要在替换中使用 \\
。 </code> 是对第 1 组值的反向引用,但同样,<code>\
必须在字符串中加倍,即文字,因此,我们在其中使用 \1
。这就是连续有 6 个反斜杠的原因。您可能会找到有关反斜杠问题的更多信息 .
结果只包含一个反斜杠,您可以使用 cat
或将内容保存到文本文件中轻松检查:
cat(gsub("&", "\&", "A&B",fixed=TRUE), collapse="\n")
cat(gsub("(&)", "\\\1", "A&B"))
我发现很难用 "\&"
替换 "&"
使用 R 的 base
gsub()
函数 -
gsub("&", "\&", "A&B")
给出以下错误-
Error: '\&' is an unrecognized escape in character string starting ""\&"
有什么办法可以实现这种替换吗?
您可以使用
gsub("&", "\&", "A&B",fixed=TRUE) # Fixed string replacement
gsub("(&)", "\\\1", "A&B") # Regex replacement
固定字符串替换很清楚:每个&
被替换为一个\&
。双 \
用于字符串文字中以表示文字 \
.
在正则表达式替换中,&
被匹配并捕获到组 1 中。由于反斜杠是正则表达式替换模式中的特殊字符,因此必须加倍,并且 - 请记住文字反斜杠在字符串文字中用 \
定义 - 我们需要在替换中使用 \\
。 </code> 是对第 1 组值的反向引用,但同样,<code>\
必须在字符串中加倍,即文字,因此,我们在其中使用 \1
。这就是连续有 6 个反斜杠的原因。您可能会找到有关反斜杠问题的更多信息
结果只包含一个反斜杠,您可以使用 cat
或将内容保存到文本文件中轻松检查:
cat(gsub("&", "\&", "A&B",fixed=TRUE), collapse="\n")
cat(gsub("(&)", "\\\1", "A&B"))