stringr
stringr
包中的函数主要涉及字符串的提取、匹配、替换、拆分等操作。能用于字符串,一般就能用于字符串向量!
letters是R自带的小写26个字母字符串向量,chr[1:26] "a" "b" ... "z"
scan()扫描读取
writeLines()将字符串写入文件
identical()两个内容相比较
字符串常用内容¶
转义符号:\
"\"" # or '"'
'\'' # or "'"
创建字符串¶
str_dup() 复制字符串。
属性¶
str_length计算字符串的长度
str_count()根据正则,对字符串中出现匹配的内容进行不重复的计数
提取
stringr::word 根据分隔符,将字符串划分为单词,并可以选择提取的单词位置
str_extract()根据正则,输出匹配上的第一个内容。可以检测字符串中是否含有某个元素
[str_extract_all](stringr/str_extract_all.md输出满足要求的所有内容,含有多少个元素
str_sub() 根据指定开始和起始位置,提取字符串字串
str_subset()根据正则,提取匹配上能够包含的字串,如ab,匹配abc、abe
常规操作¶
增¶
str_c()有两个维度的指定,建议详看函数举例,seq:字符串+向量,collapse向量内的字符串元素
str_flatten()指定分隔符,将字符串向量连接成一个单一的字符串
str_flatten_comma()默认为逗号,连接字符串
str_glue() 将变量的值插入到字符串模板中,生成新的字符串
str_glue_data()将df中的列向量插入到字符串模板中
str_pad()用特定字符填充字符串的两侧。
删¶
str_trim()移除字符串开头和结尾的空格
str_remove()从字符串中移除匹配的文本
改¶
- 排序
str_sort()对字符向量进行排序,如按照美式英语,返回排序后的向量
str_order()按字母顺序排序,返回排序后的元素在原始向量中的索引
- 替换/转换
str_replace() 根据正则,替换第一个匹配项
str_replace_all()根据正则,替换所有匹配项
str_to_lower()将所有字母小写
str_to_upper()将所有字母大写
str_to_title()将每个单词的首字母大写,空格、逗号、句号、- 隔开的字符都算作单词
str_conv()将字符串按指定格式转码
- 字符串拆分:
str_wrap()指定的列宽度内将字符串拆分成多行,且每行开头可以添加指定内容
str_split() 根据正则识别分隔符,拆分为子字符串
str_split_fixed()根据正则识别分隔符,拆分到数量为n的子字符串
str_trunc()截断字符串到指定的长度
查¶
- 匹配检测
str_view()根据正则,显示匹配上的字符整串或没有匹配上的字符串
str_view_all()没有这个
str_match() 根据正则,查找字符串,以矩阵的形式返回
str_locate()返回字符串中根据匹配模式匹配到的子集的起始位置
str_locate_all()返回字符串中所有匹配模式的起始位置。
str_detect()根据正则匹配,输出逻辑值,结合sum、mean函数效果更佳
通配符¶
在正则表达式中,有许多特殊的匹配符号用于指定模式的匹配规则。以下是一些常见的匹配符号及其含义:
-
.
:匹配任意单个字符,除了换行符。 -
?
:匹配前面的元素零次或一次。问好,要么有、要么没有! -
*
:匹配前面的元素零次或多次。乘0为0,零次或多次 -
+
:匹配前面的元素一次或多次。加1或多次 -
^
:以某元素开始,开头匹配。 -
$
:以某元素结束,结尾匹配。^apple$
指定apple -
{n}
:匹配前面的元素恰好 n 次。 -
{n,}
:匹配前面的元素至少 n 次。 -
{n,m}
:匹配前面的元素至少 n 次,但不超过 m 次。 -
[]
:匹配括号内的任意一个字符。例如,[abc]
匹配字符 "a"、"b" 或 "c"。 -
[^]
:匹配不在括号内的任意一个字符。例如,[^abc]
匹配除了字符 "a"、"b" 和 "c" 之外的任意字符。 -
|
:匹配两个或多个模式之一。例如,apple|banana
匹配 "apple" 或 "banana"。区别[],可以比单个字符长 -
()
:捕获匹配的子组。满足就行 -
\
:用于转义特殊字符。需要注意的是,正则表达式中的特殊字符在R语言中常常需要进行转义,即使用双反斜杠(\) 进行表示。例如,要匹配一个字面上的问号字符,可以使用\\?
。\d
: 匹配任意一个数字字符,相当于[0-9]
。\D
:匹配任意一个非数字字符,相当于[^0-9]
。\w
:匹配任意一个字母、数字或下划线字符,相当于[a-zA-Z0-9_]
。\W
:匹配任意一个非字母、非数字、非下划线字符,相当于[^a-zA-Z0-9_]
。\s
:匹配任意一个空白字符,包括空格、制表符、换行符等。\S
:匹配任意一个非空白字符
[aeiou]
至少包含一个元音字母的所有单词
^[^aeiou]+$
仅包含辅音字母(非元音字母)的所有单词