字符类与重复

R 中级正则表达式

Angelo Zehr

Data Journalist

可用的字符类

字符类 示例
\\d 或 [:digit:] 0, 1, 2, 3,…
\\w 或 [:word:] a, b, c…, 1, 2, 3…, _
[A-Za-z] 或 [:alpha:] A, B, C,…, a, b, c,…
[aeiou] aeiou
\\s 或 [:space:] " "、制表符或换行符
R 中级正则表达式

具体示例

str_match_all() 结果
"Hi John_35", "\\d" "3", "5"
"Hi John_35", "\\w" "H", "i", "J", "o", "h", "n", "_", "3", "5"
"Hi John_35", "[A-Za-z]" "H", "i", "J", "o", "h", "n"
"Hi John_35", "[aeiou]" "i", "o"
"Hi John_35", "\\s" " "
R 中级正则表达式

重复

语法 含义
\\w{2} 恰好 2 次
\\w{2,3} 至少 2 次,至多 3 次
\\w{2,} 至少 2 次,无上限
\\w+ 1 次或更多
\\w* 0 次、1 次或更多
R 中级正则表达式

字符类的取反

原始 取反
\\d 匹配数字 \\D 匹配除数字外的所有字符
\\w 匹配单词字符 \\W 匹配除单词字符外的所有字符
\\s 匹配空白 \\S 匹配除空白外的所有字符
[a-zA-Z] 匹配字母 [^a-zA-Z] 匹配除字母外的所有字符
R 中级正则表达式

使用类自定义模式

str_match_all("Toy Story 3", "[\\d\\s]")

结果:

     [,1]
[1,] " " 
[2,] " " 
[3,] "3"
R 中级正则表达式

让我们练习!

R 中级正则表达式

Preparing Video For Download...