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

你可以使用 alternation(交替)在多个备选模式之间进行选择。例如,abc|d..f 将匹配 "abc" 或 "deaf"。注意 | 的优先级很低,所以 abc|xyz 匹配的是 abc 或 xyz,而不是 abcyz 或 abxyz。与数学表达式一样,如果优先级让你感到困惑,可以使用括号来明确你想要的内容:

str_view(c("grey", "gray"), "gr(e|a)y")

练习

    1. 创建正则表达式,找出所有满足以下条件的单词:
    • a. 以元音开头。
    • b. 只包含辅音。(提示:考虑匹配“非”元音。)
    • c. 以 ed 结尾,但不是以 eed 结尾。
    • d. 以 ing 或 ize 结尾。
    1. 从经验上验证规则 "i before e except after c"(c 后面才用 ei)。
    1. "q" 后面是否总是跟着 "u"?
    1. 编写一个正则表达式,如果一个单词很可能是英式英语而非美式英语,则匹配该单词。
    1. 创建一个正则表达式,匹配你所在国家常见的电话号码书写格式。

重复

下一步的进阶功能是控制模式匹配的次数:

  • ?: 0 或 1 次
  • +: 1 次或更多
  • *: 0 次或更多

x <- "1888 is the longest year in Roman numerals: MDCCCLXXXVIII" str_view(x, "CC?")