R 中級 Regular Expressions
Angelo Zehr
Data Journalist
"cat" 是否以 "c" 開頭?
Rebus 作法:
str_detect("cat", pattern = START %R% "c")
正規表示式:
str_detect("cat", pattern = "^c")
str_detect(string, pattern)
str_match(string, pattern)


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",
...
| 特殊字元 | 意義 |
|---|---|
^ |
加字號:標記行或字串開頭 |
$ |
錢號:標記行或字串結尾 |
. |
句點:匹配任意字元(字母、數字或空白) |
\\. |
兩個反斜線:搜尋實際的句點時用來跳脫 |
| 程式碼 | 結果 |
|---|---|
str_match("Book", "^.") |
會匹配到 "B" |
str_match("Book", ".$") |
會匹配到 "k" |
str_match("Book", "\\.") |
不匹配 |
str_match("Book.", "\\.") |
會匹配到 "." |
R 中級 Regular Expressions