如何在正则表达式中允许任意数量的通配符?

时间:2015-06-29 18:35:41

标签: regex r

我有一个字符串列表:

> head(g_patterns_clean_strings)
[[1]]
[1] "1FAFA"

[[2]]
[1] "FA,TRFA"

[[3]]
[1] "FAEX"

我试图识别这些字符串中的特定模式,如下:

library(devtools)
g_patterns_clean <- source_gist("164f798524fd6904236a")[[1]]
g_patterns_clean_strings <- source_gist("af70a76691aacf05c1bb")[[1]]

FA_EX_logic_vector <- grepl(g_patterns_clean_strings, pattern = "(FAEX|EXFA)+")
FA_EX_cluster <- subset(g_patterns_clean, FA_EX_logic_vector)

现在说我想在FA和EX(或EX和FA)之间允许任意数量的其他字符,我如何在上面的正则表达式中指定?

1 个答案:

答案 0 :(得分:0)

这是@ eipi10答案的灵活概括:

(FA.{0,2}EX|EX.{0,2}FA)

.匹配任何字符,{0,2}量词匹配0到2次出现的.