字符串中 char 位置的转义字符:R lang
Escape character for Location of char in a string: R lang
我正在尝试获取 \
或 /
在字符串中的位置。下面是我正在尝试的代码:
x <- "<span id=\"ref_12590587_l\">6,803.61</span>_l>"
gregexpr("\\", x)
which(strsplit(x, "")[[1]]=="\")
我的问题是当我在 Rstudio 中尝试这些代码时,我得到继续提示,REPL 提示变为 +
。这些代码适用于其他字符。
为什么我会收到继续提示,即使 \
是反引号?
编辑: 更正了评论后的字符串。
您必须添加另一个斜杠(如 stribizhev 在评论中所说)。所以你正在寻找
gregexpr("\\", x)
原因是您需要两次转义 \
。所以 \
只给你 1 个反斜杠。当你输入 3 时,第三个反斜杠实际上是在转义引号!
查看示例:
gregexpr("\"", 'hello, "hello"')
这是在字符串中搜索引号。
只是为了正式表达我的意见:
- 您的
x
变量不包含任何反斜杠,这些是允许我们将文字引号放入字符串中的转义字符。
gregexpr("\\", x)
包含非闭合字符串文字,因为右侧的引号被转义,因此被视为文字引号,而不是用于 "close" 的引号字符串文字。
- 要在
gregexpr
中搜索文字 \
,我们需要 4 个反斜杠 \\
,因为 gregexpr
需要正则表达式。在正则表达式中,“\”是一个特殊符号,因此必须为正则表达式引擎进行转义。但是在 gregexpr
中,我们传递了一个字符串,它本身使用 \
来转义像 \n
这样的实体。因此,我们需要先对 R 的反斜杠进行转义,然后对正则表达式引擎进行转义。
也就是说,您可以使用
gregexpr("\\", x)
仅获取文字反斜杠,或者
gregexpr("\\|/", x)
还要查找正斜杠。
我正在尝试获取 \
或 /
在字符串中的位置。下面是我正在尝试的代码:
x <- "<span id=\"ref_12590587_l\">6,803.61</span>_l>"
gregexpr("\\", x)
which(strsplit(x, "")[[1]]=="\")
我的问题是当我在 Rstudio 中尝试这些代码时,我得到继续提示,REPL 提示变为 +
。这些代码适用于其他字符。
为什么我会收到继续提示,即使 \
是反引号?
编辑: 更正了评论后的字符串。
您必须添加另一个斜杠(如 stribizhev 在评论中所说)。所以你正在寻找
gregexpr("\\", x)
原因是您需要两次转义 \
。所以 \
只给你 1 个反斜杠。当你输入 3 时,第三个反斜杠实际上是在转义引号!
查看示例:
gregexpr("\"", 'hello, "hello"')
这是在字符串中搜索引号。
只是为了正式表达我的意见:
- 您的
x
变量不包含任何反斜杠,这些是允许我们将文字引号放入字符串中的转义字符。 gregexpr("\\", x)
包含非闭合字符串文字,因为右侧的引号被转义,因此被视为文字引号,而不是用于 "close" 的引号字符串文字。- 要在
gregexpr
中搜索文字\
,我们需要 4 个反斜杠\\
,因为gregexpr
需要正则表达式。在正则表达式中,“\”是一个特殊符号,因此必须为正则表达式引擎进行转义。但是在gregexpr
中,我们传递了一个字符串,它本身使用\
来转义像\n
这样的实体。因此,我们需要先对 R 的反斜杠进行转义,然后对正则表达式引擎进行转义。
也就是说,您可以使用
gregexpr("\\", x)
仅获取文字反斜杠,或者
gregexpr("\\|/", x)
还要查找正斜杠。