は、ベースRと正規表現とアプローチです。
grepRaw
は、一致する正規表現パターン(引数はall = TRUE
)の位置を提供します。この結果の長さは一致の数を提供します。
d <- c("
Limited compatibility Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla maximus lobortis
tellus quis egestas. Donec non dignissim urna. Praesent at commodo ligula.
Cras laoreet limited compatibility interdum mi nec euismod. Ut interdum odio non sem luctus iaculis. Mauris id sapien limited X XXXX compatibility accumsan, imperdiet justo non,limited compatibility egestas felis. Morbi commodo lectus limited X compatibility scelerisque limited XXX compatibility est bibendum, vel varius tellus vulputate. Aenean dictum accumsan limited X compatibility neque limited X X compatibility sed dictum. Vivamus finibus lacus sit amet iaculis molestie. Fusce enim limited X compatibility sapien, iaculis quis leo non, pellentesque lobortis arcu. Proin commodo limited X XXX XXXXX compatibility velit placerat venenatis mattis. Limited compatibility Curabitur et laoreet ipsum. Limited compatibility
")
> length(grepRaw("Limited compatibility", d, ignore.case = TRUE, all = TRUE))
[1] 5
> length(grepRaw("limited \\w+ compatibility", d, ignore.case = TRUE, all = TRUE))
[1] 4
> length(grepRaw("limited (\\w+){2}compatibility", d, ignore.case = TRUE, all = TRUE))
[1] 2
> length(grepRaw("limited (\\w+){3}compatibility", d, ignore.case = TRUE, all = TRUE))
[1] 1
次の正規表現のマッチ「限定されたX互換neque限定XXの互換性」と、これはentended動作ではありません
> length(grepRaw("limited (\\w+){6}compatibility", d, ignore.case = TRUE, all = TRUE))
[1] 1
たぶん、より安全な単一の行にすべての「限定XXの互換性」のパターンを配置します:
d <- gsub("Limited", "\nLimited", d, ignore.case = TRUE)
d <- gsub("compatibility", "compatibility\n", d, ignore.case = TRUE)
# writeLines(d)
これは正しいです
> length(grepRaw("limited (\\w+){6}compatibility", d, ignore.case = TRUE, all = TRUE))
[1] 0