开始使用免费开始使用

grepl 与 grep(2)

您可以使用插入符号 ^ 和美元符号 $ 分别匹配字符串的开头和结尾。这能让我们更接近只匹配列表中以".edu"结尾的电子邮箱地址的正确模式。不过,为了让模式更健壮,还需要加入以下内容:

  • @,因为合法邮箱必须包含 at 符号。
  • .*,匹配任意字符(.)出现 0 次或多次(*)。点和星号都是元字符。您可以用它们来匹配 at 符号与邮箱地址中".edu"部分之间的任意字符。
  • \\.edu$,用于匹配字符串末尾的".edu"部分。\\ 用于对点进行转义:它告诉 R,您希望将 . 作为字面字符处理。

本练习是课程的一部分

R 中级

查看课程

练习说明

  • 使用带有更高级正则表达式的 grepl() 返回逻辑向量。直接打印结果。
  • 使用同样的方法调用 grep() 创建索引向量。将结果存入变量 hits
  • 再次使用 emails[hits]emails 向量进行子集选择。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# The emails vector has already been defined for you
emails <- c("[email protected]", "[email protected]", "[email protected]",
            "invalid.edu", "[email protected]", "[email protected]")

# Use grepl() to match for .edu addresses more robustly


# Use grep() to match for .edu addresses more robustly, save result to hits


# Subset emails using hits
编辑并运行代码