R语言使用Stringr与正则表达式进行字符串处理代码示例

 更新时间:2025年07月21日 09:12:47   作者:代吗喽  
在R语言中正则表达式常用于处理字符串,特别是在数据清洗和预处理阶段,这篇文章主要介绍了R语言使用Stringr与正则表达式进行字符串处理的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

字符串处理是数据清洗与分析中必不可少的一环。R语言中的stringr包提供了强大且易用的字符串处理函数,而正则表达式则使得字符串的匹配与替换更为灵活和高效。本文将详细介绍如何使用stringr和正则表达式来处理字符串,并提供相应的示例代码。

一、Stringr 包

1. 创建与查看

  • 查看

    library(stringr)
    str_view("Hello World", "World")
    

    使用str_view可以直观地查看匹配结果,base::writeLines可以显示字符串内容。

  • 转义符:使用\\进行转义,例如:

    # cat()函数:Concatenate and Print(连接和打印)
    cat("This is a backslash: \\")
    
    This is a backslash: \
    
  • 原始字符串:可以避免频繁的转义,例如:

    raw_string <- r"(\d{3}-\d{2}-\d{4})"
    

2. 长度与子集

  • 字符串长度

    str_length("Hello")
    
    [1] 5
    
  • 按位置提取子集

    str_sub("Hello World", 1, 5)
    
    [1] "Hello"
    
  • 填充字符串

    str_pad("Hello", width = 10, side = "both", pad = "-")
    
    [1] "--Hello---"
    

3. 检测匹配

  • 检测匹配:返回逻辑值,注意是向量运算;可以与sum()等统计函数合用。

    str_detect(c("apple", "banana", "pear"), "a")
    
    [1] TRUE TRUE TRUE
    
  • 选择匹配的子集:对于字符串向量,选出符合匹配的子集,注意与str_sub区分开。

    str_subset(c("apple", "banana", "pear"), "a")
    
    [1] "apple"  "banana" "pear"  
    
  • 统计匹配次数

    str_count(c("apple", "banana", "pear"), "a")
    
    [1] 1 3 1
    
  • 查看匹配

    str_view(c("apple", "banana", "pear"), "a")
    

4. 提取匹配

  • 提取第一个匹配项:如果没有匹配则返回NA

    str_extract("The price is $123", "\\$\\d+")
    
    [1] "$123"
    
  • 提取所有匹配项

    str_extract_all("The price is $123 or $456", "\\$\\d+")
    
    [1] "$123" "$456"
    
  • 分组匹配

    str_match("The price is $123", "(\\$\\d+)")
    

5. 修改字符串

  • 按位置替换子集

    text <- "Hello, world!"
    str_sub(text, 1, 5) <- "Hi"
    
  • 转换为小写

    str_to_lower("Hello")
    
  • 替换匹配项

    str_replace("The price is $123", "\\$\\d+", "$456")
    

6. 连接和分割

  • 合并字符串

    str_c("Hello", "World", sep = " ")
    
  • 分割字符串

    str_split("apples,oranges,pears", ",")
    

7. 排序与定位字符串

  • 排序字符向量

    str_sort(c("banana", "apple", "pear"))
    
  • 返回排序序号

    str_order(c("banana", "apple", "pear"))
    
  • 定位匹配项

    str_locate("The price is $123", "\\$\\d+")
    

二、正则表达式

1. 基础/精确匹配

最简单的正则表达式是匹配一个精确的字符串,如apple

2. 条件

  • “或”匹配

    str_detect(c("apple", "banana", "pear"), "apple|banana")
    
  • “之一”匹配

    str_detect(c("apple", "banana", "pear"), "[aeiou]")
    

3. 锚点 (始于权力^(power),终于金钱$)

  • 开始匹配

    str_detect("apple", "^a")
    
  • 结尾匹配

    str_detect("apple", "e$")
    

4. 量词

  • 出现0次或1次

    str_detect(c("color", "colour"), "colou?r")
    
  • 出现1次或更多

    str_detect(c("apple", "aple"), "ap+le")
    

5. 特殊字符集合

  • 匹配任何数字(digit)

    str_detect("123abc", "\\d")
    
  • 匹配空白字符(space)

    str_detect("a b", "\\s")
    

6. 分组与回溯引用

  • 分组匹配

    str_match("The price is $123", "(\\$\\d+)")
    
  • 回溯引用

    str_replace("abab", "(ab)\\1", "cd")
    

总结 

到此这篇关于R语言使用Stringr与正则表达式进行字符串处理的文章就介绍到这了,更多相关R语言Stringr与正则表达式字符串处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • 使用R中merge()函数合并数据的方法

    使用R中merge()函数合并数据的方法

    这篇文章主要介绍了使用R中merge()函数合并数据,本文详细介绍R中merge()函数参数及合并数据类型,利用sql的表连接概念进行类比,简单易懂,需要的朋友可以参考下
    2023-03-03
  • R语言 查找满足条件的数并获取索引的操作

    R语言 查找满足条件的数并获取索引的操作

    这篇文章主要介绍了R语言 查找满足条件的数并获取索引的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言绘制corrplot相关热图分析美化示例及详细图解

    R语言绘制corrplot相关热图分析美化示例及详细图解

    这篇文章主要为大家介绍了R语言corrplot相关热图分析美化示例及详细图解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • R语言实现支持向量机SVM应用案例

    R语言实现支持向量机SVM应用案例

    本文主要介绍了R语言实现支持向量机SVM应用案例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • R语言交叉验证的实现代码

    R语言交叉验证的实现代码

    这篇文章主要介绍了R语言交叉验证的实现,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 使用R语言实现自动文摘的方法

    使用R语言实现自动文摘的方法

    本文介绍了如何使用R语言实现自动文摘,我们首先介绍了基于词频-逆文档频率(TF-IDF)的自动文摘方法,包括创建词项文档矩阵,计算TF-IDF值,提取关键词,以及根据关键词生成摘要,需要的朋友一起学习下吧
    2023-05-05
  • 详解R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计

    详解R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计

    这篇文章主要介绍了R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • R语言绘制带误差线的条形图

    R语言绘制带误差线的条形图

    本文主要介绍了R语言绘制带误差线的条形图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • R语言ggplot2x轴顺序设置自定义颜色的操作

    R语言ggplot2x轴顺序设置自定义颜色的操作

    这篇文章主要介绍了R语言ggplot2x轴顺序设置自定义颜色的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言ggplot2 title设置教程(main,axis和legend titles)

    R语言ggplot2 title设置教程(main,axis和legend titles)

    ggplot2是一个强大的作图工具,它可以让你不受现有图形类型的限制,创造出任何有助于解决你所遇到问题的图形,下面这篇文章主要给大家介绍了关于R语言ggplot2 title设置(main,axis和legend titles)的相关资料,需要的朋友可以参考下
    2023-02-02

最新评论