R中编写str_detect正则时双引号嵌套错误及空格筛选失败如何解决?
R语言首尾带空格字符串筛选实现
原代码问题说明
- 存在双引号使用的语法错误,字符串拼接不符合R语言规范
- 正则表达式规则错误,未精准匹配「字符串开头/结尾带空格」的需求
正确实现代码
# 加载依赖 library(tidyverse) # 示例数据集 mydata<-data.frame(NCT_number=c(" 1111"," 2222","0000","3333","4444 ")) # 筛选首尾存在空格的行 mydata %>% filter(str_detect(NCT_number, "^\\s+|\\s+$"))
规则说明
正则表达式^\\s+|\\s+$的逻辑:
^匹配字符串起始位置,\\s+匹配1个及以上空白字符,^\\s+用于识别开头带空格的内容|代表正则逻辑「或」$匹配字符串结束位置,\\s+$用于识别结尾带空格的内容
如果仅需要匹配纯空格(排除制表符等其他空白字符),可将正则修改为^ +| +$即可。
运行输出结果
NCT_number 1 1111 2 2222 5 4444
内容的提问来源于stack exchange,提问作者Seydou GORO
相关产品推荐
相关产品推荐

