sub 与 gsub
虽然 grep() 和 grepl() 只能用来检查某个正则表达式是否能与字符向量匹配,sub() 和 gsub() 则更进一步:您可以指定一个 replacement 参数。如果在字符向量 x 中找到了正则表达式 pattern,匹配到的元素将被替换为 replacement。sub() 只替换第一个匹配项,而 gsub() 会替换所有匹配项。
假设您一直在使用的 emails 向量是 DataCamp 邮件数据库的一个摘录。为何不为使用 .edu 邮箱地址的用户,提供一个 datacamp.edu 域的全新邮箱呢?这可能会是一次很有力的营销动作:在线教育正在改变传统的学习机构!转换您的邮箱,加入新一代!
本练习是课程的一部分
R 中级
练习说明
使用高级正则表达式 "@.*\\.edu$",调用 sub() 将匹配部分替换为 "@datacamp.edu"。由于每个字符串只会有一个匹配,此处无需使用 gsub()。检查输出结果。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# The emails vector has already been defined for you
emails <- c("[email protected]", "[email protected]", "[email protected]",
"invalid.edu", "[email protected]", "[email protected]")
# Use sub() to convert the email domains to datacamp.edu