sub 與 gsub
grep() 和 grepl() 只能用來檢查某個正規表示式是否能與字元向量比對;sub() 和 gsub() 更進一步:你可以指定 replacement 引數。若在字元向量 x 中找到正規表示式 pattern,符合的元素會被 replacement 取代。sub() 只會取代第一個符合項,而 gsub() 會取代所有符合項。
假設你一直在用的 emails 向量,是 DataCamp 電子郵件資料庫的一小段。為什麼不主動提供持有 .edu 信箱的使用者,一個 datacamp.edu 網域的新信箱呢?這可能是很有效的行銷做法:線上教育正快速改變傳統學習機構!把你的信箱換過來,成為新世代的一員!
本練習屬於課程
R 中級
練習說明
使用進階正規表示式 "@.*\\.edu$",透過 sub() 將比對到的部分取代為 "@datacamp.edu"。由於每個字串只會有 1 個符合,因此這裡不需要 gsub()。檢視產生的輸出。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# The emails vector has already been defined for you
emails <- c("[email protected]", "[email protected]", "[email protected]",
"invalid.edu", "[email protected]", "[email protected]")
# Use sub() to convert the email domains to datacamp.edu