搜尋與取代
str_replace() 是用來取代字串部分內容的通用函式。一個常見做法是把某段內容取代成空字串,這是移除字串中不需要部分的簡單方式。
有了擷取群組,str_replace() 就更有趣了:它能讓你改變元素的順序。只要在替換字串中加入所謂的「反向參照」,str_replace() 會以對應擷取群組的內容來取代這些參照。例如:如果你寫 \\1,就會被替換成第 1 個擷取群組的內容。
在這個練習中,你會同時看到兩種用法:第一種是移除子字串,第二種是重新排列字串中的兩個部分。在工作環境中,你會找到上一個練習的變數 top_10_lines。
本練習屬於課程
R 中級 Regular Expressions
練習說明
- 將
top_10_lines每一行「結尾」的3D以空字串取代,等於把它移除。 - 使用兩個擷取群組組成一個新的句子,並重新排列它們的順序,使結果如
"Karate Kid is on rank 1"。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Remove a space followed by "3D" at the end of the line
str_replace(
top_10_lines,
pattern = "___",
replacement = ___
)
# Use backreferences 2 and 1 to create a new sentence
str_replace(
top_10_lines,
pattern = "(\\d+)\\. (.*)",
replacement = "___ is at rank ___"
)