R中如何拆分dataframe的question列提取方括号内外内容为两列
错误原因
你当前使用的正则表达式中,\w+仅支持匹配连续的字母、数字、下划线,无法捕获问题文本中包含的空格、标点、特殊符号,因此无法正确拆分出完整的问题内容和方括号内的标识。
修正代码
你只需要调整正则规则,匹配方括号前的全部内容即可,修正后的代码如下:
df2 %>% tidyr::extract( question, into = c('question', 'v2'), regex = '^(.*?)\\s*\\[(\\w+)\\]$' )
正则规则说明
^匹配字符串起始位置(.*?)非贪婪匹配,捕获方括号之前的所有内容作为新的question列\\s*匹配方括号与前置内容之间可能存在的空格\\[(\\w+)\\]匹配方括号结构,同时捕获方括号内部的单词内容作为v2列$匹配字符串结束位置
运行上述代码即可得到你需要的输出结果。
内容的提问来源于stack exchange,提问作者C.Robin
相关产品推荐
相关产品推荐

