歡迎

R 中級 Regular Expressions

Angelo Zehr

Data Journalist

你可能的前一站

R 中級 Regular Expressions

從 Rebus 到自訂表達式

"cat" 是否以 "c" 開頭?

Rebus 作法:

str_detect("cat", pattern = START %R% "c")

正規表示式:

str_detect("cat", pattern = "^c")
R 中級 Regular Expressions

先備知識:stringr

str_detect(string, pattern)
str_match(string, pattern)
R 中級 Regular Expressions

正規表示式能幫你做到什麼

帶高亮的文字區塊

R 中級 Regular Expressions

正規表示式能幫你做到什麼

帶高亮的文字區塊

R 中級 Regular Expressions

第一個資料集

movie_titles <- c(
  "Karate Kid",
  "The Twilight Saga: Eclispe",
  "Knight & Day",
  "Shrek Forever After (3D)",
  "Marmaduke.",
  "Predators",
  "StreetDance (3D)",
  "Robin Hood",
  "Micmacs A Tire-Larigot",
  "Sex And the City 2",
...
movie_titles[
  str_detect(
    movie_titles,
    pattern = "^K"
  )
]
"Karate Kid",
"Knight & Day",
...
R 中級 Regular Expressions

正規表示式中的特殊字元

特殊字元 意義
^ 加字號:標記行或字串開頭
$ 錢號:標記行或字串結尾
. 句點:匹配任意字元(字母、數字或空白)
\\. 兩個反斜線:搜尋實際的句點時用來跳脫
R 中級 Regular Expressions

範例

程式碼 結果
str_match("Book", "^.") 會匹配到 "B"
str_match("Book", ".$") 會匹配到 "k"
str_match("Book", "\\.") 不匹配
str_match("Book.", "\\.") 會匹配到 "."
R 中級 Regular Expressions

一起來練習吧!

R 中級 Regular Expressions

Preparing Video For Download...