←
PDF 233 / 520 Exercises
→
English · PDF 233
Original PDF page 233
中文 · PDF 233

练习

    1. 用文字描述这些表达式将匹配什么:
    • a. (.)\1\1
    • b. "(.)(.)\2\1"
    • c. (..)\1
    • d. "(.).\1.\1"
    • e. "(.)(.)(.).*\3\2\1"
    1. 构造正则表达式来匹配满足以下条件的单词:
    • a. 以相同的字符开头和结尾。
    • b. 包含重复的字母对(例如,"church" 包含重复两次的 "ch")。
    • c. 包含至少在三个位置重复出现的同一个字母(例如,"eleven" 包含三个 "e")。

工具

既然你已经学习了正则表达式的基础知识,现在是时候学习如何将它们应用到实际问题中了。在本节中,你将学习一系列 stringr 函数,它们可以让你:

  • 确定哪些字符串匹配某个模式。
  • 找到匹配的位置。
  • 提取匹配的内容。
  • 用新值替换匹配项。
  • 根据匹配项拆分字符串。

在继续之前需要提醒一句:由于正则表达式非常强大,人们很容易想用单个正则表达式来解决所有问题。用 Jamie Zawinski 的话来说:

有些人在遇到问题时会想:“我知道了,我要用正则表达式。”现在他们有了两个问题。

作为一个警示案例,请看这个检查电子邮件地址是否有效的正则表达式: