如何在R中完成这项工作?
str_split("U.S. (California, San Luis Obispo County)",pattern=' (')
gregexpr错误("(","美国(加利福尼亚州,圣路易斯奥比斯波县)",固定= FALSE,: 正则表达式无效'(',原因'缺少')''
gregexpr("(", "U.S. (California, San Luis Obispo County)")
gregexpr错误("(","美国(加利福尼亚州,圣路易斯奥比斯波县)"): 正则表达式无效'(',原因'缺少')''
gregexpr("(", "U.S. (California, San Luis Obispo County)",perl=T)
gregexpr错误("(","美国(加利福尼亚州,圣路易斯奥比斯波县)",perl = T): 正则表达式无效'('
另外,警告信息:
In gregexpr("(", "U.S. (California, San Luis Obispo County)", perl = T) :
PCRE pattern compilation error
'missing )'
at ''
答案 0 :(得分:1)
要使用像#34;这样的特殊字符进行拆分("你必须逃避它。要逃避R中的正则表达式,你必须使用双" \",一个用于正如Hugh所建议的那样,R字符串和正则表达式的另一个字符串。然后你的模式应该是" \("。有关更多信息,请参阅regex doc。
以下代码完成工作
raw_string <- "U.S. (California, San Luis Obispo County)"
splitted_string <- strsplit(x=raw_string, split="\\(")
splitted_string
#[[1]]
#[1] "U.S. "
#[2] "California, San Luis Obispo County)"
但我不确定你想要什么。如果您的目标是删除字符串中的左侧括号,请使用带有空替换模式的gsub
。
raw_string <- "U.S. (California, San Luis Obispo County)"
no_parenthesis_string <- gsub(pattern="\\(", replacement="", x= raw_string)
no_parenthesis_string
# [1] "U.S. California, San Luis Obispo County)"
有帮助吗?
答案 1 :(得分:0)
gsub("\\\\(","",c("U.S. (California, San Luis Obispo County)"))
或
paste0(strsplit(c("U.S. (California, San Luis Obispo County)"), "\\(")[[1]], collapse = "")
答案: “美国加州,圣路易斯奥比斯波县”“