双引号与单引号有啥区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双引号与单引号有啥区别相关的知识,希望对你有一定的参考价值。
参考技术A双引号的作用有:
1、行文中直接引用的话;
2、需要着重论述的对象;
3、具有特殊含意的词语;
4、表示特定称谓;
5. 用于话语之中。
单引号的作用有:
1、引号里面还要用引号时,外面一层用双引号,里面一层用单引号。
2、用于各拼音输入法的隔音符。
3、用于突出文章结构、或表达特殊内容。
扩展资料
注意事项
引语指行文中引用他人的话。成语、格言、诗词等, 也包括拟声词、音译词。特定称谓指具有某些特点的名称、简称、专用术语以及纪念日等。特殊含义指引号中的词语在其具体的语言环境中产生了新的意思。
使用引用时,引文末尾标点的位置要注意。 凡是把引用的话独立来用,末尾点号放在引号里边。如果引用的内容是句子的一个组成部分,即引文没有独立性,引用部分末尾不用点号(问号、叹号可保留),整个句子该停顿处则停顿,该用何点号则用何点号。
r Markdown的Yaml标头中的单引号和双引号有啥区别?
【中文标题】r Markdown的Yaml标头中的单引号和双引号有啥区别?【英文标题】:What is the difference between a single quote and double quote in Yaml header for r Markdown?r Markdown的Yaml标头中的单引号和双引号有什么区别? 【发布时间】:2015-10-02 09:12:59 【问题描述】:我在 RStudio 中使用 knitr 编译的 r Markdown 文件中出现错误。我不确定这个“错误”应该指向哪里。看来这不是一个“R”错误。
如果我创建一个带有以下 YAML 标头内容的 R markdown 文档,我可以很好地编织该文件:
---
title: "Eye tracking AOI plots"
author: "Steven Vannoy"
date: "`r format(Sys.time(), '%I:%M')`"
output: html_document
---
但如果我只是将格式语句中的单引号更改为双引号(这是我最初使用的),
---
title: "Eye tracking AOI plots"
author: "Steven Vannoy"
date: "`r format(Sys.time(), "%I:%M")`"
output: html_document
---
我收到以下运行时错误:
Error in yaml::yaml.load(enc2utf8(string), ...) :
Scanner error: while scanning for the next token at line 3, column 32found character that cannot start any token at line 3, column 32
Calls: <Anonymous> ... yaml_load_utf8 -> mark_utf8 -> <Anonymous> -> .Call
Execution halted
我进行了足够多的实验,知道是冒号“:”导致了问题,例如,如果使用“%A %d”,则不会产生错误。
我四处搜索,发现许多断言在 R 中单引号和双引号通常是等价的,尽管你不能将双引号与单引号配对并让它像两个双引号一样。
显然,我有一个工作代码示例可以完成我需要做的事情,但我通常使用双引号,我想知道如何知道何时应该使用单引号?
【问题讨论】:
我认为这可能与在 R 中引用`
(反引号)你必须使用标准引用 "
的事实有关,反之亦然,所以引用标准引用你必须使用反引号。可能是这样。
或者是因为某些元素从物质上干扰了 YAML,并且仅保留用于解析 YAML 格式。
经过搜索,我已将我的解决方案发布到this 其他问题。此时可以将其标记为重复。
双引号内不能有双引号......你最终会得到两个字符串。您的选择是使用反斜杠转义内部引号或使用不同类型的引号(单引号)。 (反之亦然切换双引号和单引号。)反引号与它无关。
@Gregor 我现在看到,YAML 解析器在第二个双引号(就在 %I 之前)处“关闭”了我的字符串。通过在格式语句中使用单引号。它没有与外部双引号配对。很难用语言来形容,但我认为这是有道理的。我最初使用嵌套双引号基本上暴露了冒犯性的冒号并导致错误。
【参考方案1】:
单引号和双引号在 R 中通常是等价的(就像它们在 Python 中一样)是无关紧要的,解析问题发生在 YAML 级别。
您不需要在 YAML 中引用标量,但如果这样做,您需要知道 double quoted style scalars ("
) 需要转义:
这是唯一能够通过使用“\”转义序列来表达任意字符串的样式。这是以必须转义“\”和“"”字符为代价的。
所以如果你想在双引号中使用双引号,你必须这样做:
---
title: "Eye tracking AOI plots"
author: "Steven Vannoy"
date: "`r format(Sys.time(), \"%I:%M\")`"
output: html_document
---
SabDeM 的解决方案同样有效,因为标量中没有单引号
`r format(Sys.time(), "%I:%M")`
然而,单引号样式标量只能表示仅由可打印字符组成的字符串。
标量通常根本不需要在 YAML 中引用,就像您已经对键(title
、author
等)所做的那样。但是普通样式的标量不能以反引号开头。我会为所有标量使用plain style,除了date
键的值,并为那个(仅)使用literal style,以使IMO 具有更好的可读性:
---
title: Eye tracking AOI plots
author: Steven Vannoy
date: |-
`r format(Sys.time(), "%I:%M")`
output: html_document
---
这完全等同于您的 YAML。
【讨论】:
【参考方案2】:正如我在评论中所说,问题可能在于 knitr 不知道如何解析嵌套符号,或者问题可能与引用 ` 你需要 "
的事实有关,反之亦然。此代码有效,并为后一个假设提供了一个加分:
---
title: "Eye tracking AOI plots"
author: "Steven Vannoy"
date: '`r format(Sys.time(), "%I:%M")`'
output: html_document
---
【讨论】:
以上是关于双引号与单引号有啥区别的主要内容,如果未能解决你的问题,请参考以下文章