2016-11-07 14 views
3

中間の単語がRの特定の単語で始まる文章をすべて抽出する必要があります。以下は使用しようとしていますが取得できないコードです希望の結果。私はRの正規表現の概念が新です。中間の単語が「arent」である文章を抽出したいと思います。中間の単語が特定の単語で始まる文章をすべて抽出する必要があるR

yy <- c("computers arent working", "arent not wkng","scanner arent good","arent scanner good") 
    m <- gregexpr('\\w arent ', yy) 
    regmatches(yy, m) 

上記のコードでは私が望むものは得られません。希望の出力:

"computers arent working", "scanner arent good" 

ありがとうございました!

+0

中間語は、特に第2語または最初または最後でない単語ですか? –

+5

おそらく 'grep(" arent "、yy、value = TRUE、fixed = TRUE)'?そこにもっと複雑な例がありますか? –

+0

こんにちはEli - それは第二の言葉でなければなりません。 – Kiwi

答えて

1

私は

grep("\\w\\W+arent\\W+\\w", yy, value = TRUE) 

grepは(valueTRUEに設定されているとして)すべて(部分一致が発見された)正規表現パターンに一致する文字列、および意志の出力値そのものがあります示唆しています。

正規表現パターンは、arentイン間ワード(\w)文字のみ1+非単語(\W+)文字で囲まれたと一致します。

Online R demo:あなたが一致することを求める単語が空白で囲む必要があります場合は

yy <- c("computers arent working", "arent not wkng","scanner arent good","arent scanner good") 
grep("\\w\\W+arent\\W+\\w", yy, value = TRUE) 
## => [1] "computers arent working" "scanner arent good" 

\\s+(1またはそれ以上の空白文字)で\\W+を交換してください。

関連する問題