忽略 R 中 strsplit 中的大小写
Ignore case in strsplit in R
我知道 grep you can simply use ignore.case = TRUE
. However, what about strsplit?你可以传递一个正则表达式作为第二个参数,但我不确定如何让这个正则表达式不区分大小写。
目前,这是我的 strsplit 的样子,但我想让搜索不区分大小写。我该怎么做?
strsplit(df$sentence, paste0(" ", df$node, "( |[!\",.:;?})\]])"))
示例:
sentence <- "De A-bom, Sint...";
node <- "a-bom"
contexts <- strsplit(sentence, paste0("(?i) ", node, "( |[!\",.:;?})\]])"))
(leftContext <- sapply(contexts, `[`, 1))
预计return:
[1] "De"
实际 return:
[1] "De A-bom, Sint..."
请注意,但是正则表达式本身 does work online。
“(?i)”模式修饰符确实使基于 PCRE 的正则表达式不区分大小写。
您的示例的问题不在于大小写,而在于分组表达式。使用 perl=TRUE
作为您预期的转义行为。
sentence <- "De A-bom, Sint...";
node <- "a-bom"
contexts <- strsplit(sentence, paste0("(?i) ", node,
"( |[!\",.:;?})\]])"),perl=TRUE)
(leftContext <- sapply(contexts, `[`, 1))
产生预期的
[1] "De"
我知道 grep you can simply use ignore.case = TRUE
. However, what about strsplit?你可以传递一个正则表达式作为第二个参数,但我不确定如何让这个正则表达式不区分大小写。
目前,这是我的 strsplit 的样子,但我想让搜索不区分大小写。我该怎么做?
strsplit(df$sentence, paste0(" ", df$node, "( |[!\",.:;?})\]])"))
示例:
sentence <- "De A-bom, Sint...";
node <- "a-bom"
contexts <- strsplit(sentence, paste0("(?i) ", node, "( |[!\",.:;?})\]])"))
(leftContext <- sapply(contexts, `[`, 1))
预计return:
[1] "De"
实际 return:
[1] "De A-bom, Sint..."
请注意,但是正则表达式本身 does work online。
“(?i)”模式修饰符确实使基于 PCRE 的正则表达式不区分大小写。
您的示例的问题不在于大小写,而在于分组表达式。使用 perl=TRUE
作为您预期的转义行为。
sentence <- "De A-bom, Sint...";
node <- "a-bom"
contexts <- strsplit(sentence, paste0("(?i) ", node,
"( |[!\",.:;?})\]])"),perl=TRUE)
(leftContext <- sapply(contexts, `[`, 1))
产生预期的
[1] "De"