相关疑难解决方法(0)

我如何处理特殊字符,如\ ^ $.?*| +()[{在我的正则表达式?

我想匹配一个正则表达式特殊字符,\^$.?*|+()[{.我试过了:

x <- "a[b"
grepl("[", x)
## Error: invalid regular expression '[', reason 'Missing ']''
Run Code Online (Sandbox Code Playgroud)

(等价stringr::str_detect(x, "[")stringi::stri_detect_regex(x, "[").)

将值加倍以逃避它不起作用:

grepl("[[", x)
## Error: invalid regular expression '[[', reason 'Missing ']''
Run Code Online (Sandbox Code Playgroud)

也没有使用反斜杠:

grepl("\[", x)
## Error: '\[' is an unrecognized escape in character string starting ""\["
Run Code Online (Sandbox Code Playgroud)

我如何匹配特殊字符?


这个问题的一些特殊情况是陈旧的,写得足够好,因为它可以像这样重复关闭:
在R正则表达式中逃脱的时期
如何逃避R中的问号?
在正则表达式中转义管道("|")

regex r r-faq

64
推荐指数
1
解决办法
10万
查看次数

错误:'\ R'是从"C:\ R"开始的字符串中无法识别的转义符

我正在运行Windows XP Pro和R版本2.15.1 R安装在以下文件夹中:

C:\ Program Files\R\R-2.15.1

我正在尝试创建一个读取.csv文件的函数,如下所示:

xxx <- function(id, directory, summarize = FALSE) {
    data <- read.table('C:\xxx\classes\R_Prog\specdata\data.csv')
    head(data)
}
Run Code Online (Sandbox Code Playgroud)

我收到了错误

错误:'\ R'是从"C:\ R"开始的字符串中无法识别的转义符

我的目录结构/文件夹命名约定有问题吗?

r

19
推荐指数
3
解决办法
6万
查看次数

在创建R包时,错误['\ +'是字符串中以"\ +"开头的无法识别的转义符

我尝试使用我创建的一些函数和脚本创建一个包(在Mac上使用X11).虽然R CMD检查正在进行,但它遇到了如下问题:

temp = trim(unlist(strsplit(lp.add(ranefterms[[i]]), 
+                     "\+")))
Error: '\+' is an unrecognized escape in character string starting "\+"
Run Code Online (Sandbox Code Playgroud)

然而,奇怪的是,我的函数实际上没有"\ +".相反,它有"\\+"(见下文).所以我不知道为什么"\\+"被识别为"\ +".

for(i in 1:n)
   temp = trim(unlist(strsplit(lp.add(ranefterms[[i]]), '\\+')))
Run Code Online (Sandbox Code Playgroud)

为了进一步挖掘,我查看了Rcheck文件夹中的packageName-Ex.R文件.事实证明,在检查过程中所有的"\"都已更改为"\"(例如,我需要的两个斜杠,如strsplit()和grepl()等函数

我想知道它可能是什么原因.对不起,我无法想出一个可重现的例子......

x11 macos r package

17
推荐指数
1
解决办法
9893
查看次数

标签 统计

r ×3

macos ×1

package ×1

r-faq ×1

regex ×1

x11 ×1