元字元有自己的特殊含義 內的任意字元將被匹配 對元字元進行轉義 匹配字元串的開頭,將^置於character class 的首位表達的意思是取反義。如[ˆ5] 表示匹配除了“5” 以外的所有字元。 test_vector ...
元字元有自己的特殊含義
[ ]
內的任意字元將被匹配
grep(pattern = "[wW]", x = states, value = T)
grep(pattern = "w", ignore.case = T, x = states, value = T)
\
對元字元進行轉義
strsplit("strsplit.also.uses", split = ".")
strsplit("strsplit.also.uses", split = "\\.")
str_extract_all("me credit card: 334", pattern = "\\d")
^
匹配字元串的開頭,將^置於character class 的首位表達的意思是取反義。如[ˆ5] 表示匹配除了“5” 以外的所有字元。
test_vector <- c("123","456","321")
str_extract_all(test_vector, "3")
str_extract_all(test_vector, "^3")
str_extract_all(test_vector, "[^3]")
$
匹配字元串的結尾。但將它置於character class 內則消除了它的特殊含義。如[akm$]
將匹配a
,k
,m
或者$
。
str_extract_all(test_vector, "3$")
str_extract_all(test_vector, "[3$]")
.
匹配除換行符以外的任意字元。
str_extract_all(string = c("regular.exp\n","\n"), pattern =".")
|
或者
str_extract_all(string = "we23", pattern ="b|w|3")
?
此符號前的字元(組) 是可有可無的,並且最多被匹配一次
str_extract_all(string = c("abc","bc","ac"),pattern = "ab?c")
( )
表示一個字元組,括弧內的字元串將作為一個整體被匹配
str_extract_all(string = c("abc","ac","cde"),pattern = "(ab)c")
*
此符號前的字元(組) 將被匹配零次或多次
str_extract_all(string = c("abab","abc","ac"),pattern = "(ab)*")
+
前面的字元(組) 將被匹配一次或多次
str_extract_all(string = c("abbab","abc","ac"),pattern = "ab+")
{n,m}
重覆n次到m次
str_extract_all(string = c("abababab","ababc","abc"),pattern = "(ab){2}")
str_extract_all(string = c("abababab","ababc","abc"),pattern = "(ab){2,}")
str_extract_all(string = c("abababab","ababc","abc"),pattern = "(ab){2,3}")