Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 查找不包括引号和反勾号的转义字符_Regex_R - Fatal编程技术网

Regex 查找不包括引号和反勾号的转义字符

Regex 查找不包括引号和反勾号的转义字符,regex,r,Regex,R,我正在尝试使用grep检测字符串向量中的所有转义字符,不包括引号和反勾号(,,`),但无法排列正确的正则表达式。以下是我尝试的内容: x <- c("i 4like...", NA, "\\rgreat", "\aI like it", "\\", "She said \"yes\"") grep("\\\\", x) && !grep("\\\"|\\\'|\\\`", x) 因为这些元素包含的转义字符不是引号或反勾号 请注意,R正则表达式是特定的,其他形式的正则表

我正在尝试使用
grep
检测字符串向量中的所有转义字符,不包括引号和反勾号(
`
),但无法排列正确的正则表达式。以下是我尝试的内容:

x <- c("i 4like...", NA, "\\rgreat", "\aI like it", "\\", "She said \"yes\"")

grep("\\\\", x) && !grep("\\\"|\\\'|\\\`", x) 
因为这些元素包含的转义字符不是引号或反勾号


请注意,R正则表达式是特定的,其他形式的正则表达式可能不起作用或需要调整。我认为您可能正在寻找一些不存在的东西。当您这样做时

grep("\\\\", x)
实际上,您正在寻找字符串中的单个反斜杠。在R中键入反斜杠有一个转义级别,然后在正则表达式本身中有另一个转义级别

你在期待一场比赛

"\aI like it"
但是字符串本身没有实际的斜杠。如果您使用
cat(x[4])
,您将看不到斜杠。
\a
实际上是警报铃的“符号”。有关允许的转义字符,请参见
?引号

您还会注意到,
grep(“\\\\”,x)
“她说”是“
”不匹配。同样,这是因为字符串中没有实际的斜杠。这只是R在控制台中默认编码它们的方式。您可以执行
cat(x[6])
来查看未转义的版本以及
nchar(x[6])
确认它有14个字符而不是16个字符

"\aI like it"