1. Learn
  2. /
  3. 课程
  4. /
  5. R 中级

Connected

道练习

sub 与 gsub(2)

正则表达式最适合通过练习和参考示例来学习。在您为本题的正则表达式绞尽脑汁之前,先看看将会用到的新知识点:

  • .*:常见的通配符!可理解为"任意字符,匹配 0 次或多次"。
  • \\s:匹配空格。字母 "s" 原本是普通字符,加上转义(\\)后变成元字符。
  • [0-9]+:匹配数字 0 到 9,至少 1 次(+)。
  • ([0-9]+):圆括号用于捕获匹配字符串的部分,以便在替换时引用。在 sub() 的 replacement 参数中,\\1 会被设置为由正则表达式 [0-9]+ 捕获到的字符串。
awards <- c("Won 1 Oscar.",
  "Won 1 Oscar. Another 9 wins & 24 nominations.",
  "1 win and 2 nominations.",
  "2 wins & 3 nominations.",
  "Nominated for 2 Golden Globes. 1 more win & 2 nominations.",
  "4 wins & 1 nomination.")

sub(".*\\s([0-9]+)\\snomination.*$", "\\1", awards)

这段代码会返回什么?awards 已在工作空间中定义,您可以直接在控制台尝试。

说明

50 XP

答案选项