Lưu ý về regular expression

Ví dụ ta có vector sau:

vec_1 <- c("Canada(2013–14 est.)[7]", "Japan", "Vietnam")
vec_1
## [1] "Canada(2013–14 est.)[7]" "Japan"                  
## [3] "Vietnam"

Để loại bỏ phần ký tự rườm rà trong Canada(2013–14 est.)[7] để thu được ký tự Canada, thì ta có 2 cách để làm:

### áp dụng lệnh gsub, với tham số `fixed = TRUE`, nghĩa là tìm chính xác ký tự đó, không áp dụng regular expression trong pattern.

gsub(pattern = "Canada(2013–14 est.)[7]", replacement = "Canada", x = vec_1, fixed = TRUE) -> vec_1a

vec_1a
## [1] "Canada"  "Japan"   "Vietnam"
### áp dụng regular expression thì hơi rườm rà hơn.
### https://www.regular-expressions.info/refcharclass.html

gsub(pattern = "Canada[(]2013–14 est\\.[)][[]7[]]", replacement = "Canada", x = vec_1, fixed = FALSE) -> vec_1b

### ý tưởng là chúng ta dùng `[]` để escape riêng từng ký tự đặc biệt là các dấu `()` và chính dấu `[]`, ở dấu chấm `.` thì cũng escape bằng 2 dấu backslash thì R mới nhận ra cú pháp regex để tìm và thay thế.

vec_1b
## [1] "Canada"  "Japan"   "Vietnam"
identical(vec_1a, vec_1b)
## [1] TRUE