R语言中str_extract_all正则匹配不符合预期,求调整方案
精准匹配带"1"结尾的FC条目:正则表达式修改方案
问题原因
原正则FC.*1采用贪婪匹配,.*会从第一个FC开始,匹配到最后一个1为止,导致把不含1的FC Relacionado con Paciente也错误包含进结果。
修改方案
采用非贪婪匹配+字符约束,确保只匹配以FC开头、以1结尾的独立条目:
代码实现
string <- ": FC Relacionado con Paciente FC Protocolo1 FC Comunicacion entre Profesionales1 FC Disponibilidad" # 提取所有符合要求的条目 matches <- str_extract_all(string, "FC[^F]+?1")[[1]] # 合并为单个字符串(与期望格式一致) result <- paste(matches, collapse = " ") print(result)
运行结果
[1] "FC Protocolo1 FC Comunicacion entre Profesionales1"
正则解释
FC:匹配开头的固定标识[^F]+?:匹配除F之外的任意字符(避免跨下一个FC匹配),+?表示非贪婪模式,匹配到最近的1就停止1:匹配结尾的固定字符
内容的提问来源于stack exchange,提问作者Koldo Lopez
相关产品推荐
相关产品推荐

