我试图在字符串"8ab|ab8"
中查找特定模式"8ab8"
的所有匹配项。所以我尝试了R命令gregexpr("8ab|ab8","8ab8")
,希望得到一个起始位置为c(1,2)
的返回向量。
不幸的是,似乎发生的事情是,一旦第一个模式匹配,该字符串的那部分被删除"并且第二种模式不匹配。
例如,一次" 8ab"匹配," 8ab8"成为" 8"当R尝试匹配" ab8"在" 8"中,找不到模式。我知道这是因为gregexpr("8ab|ab8","8ab ab8")
工作正常,并将模式匹配的起始位置返回为c(1,5)
。
问题是,如何在第一种情况下多次匹配相同的模式?
答案 0 :(得分:1)
使用perl正则表达式:perl = TRUE。 (有关perl正则表达式的信息,请参阅?regex)
gregexpr("(?=8ab)|(?=ab8)","8ab8",perl=T)