2016-11-06 4 views
0

Rでstringrのstr_viewを使用して、 "y"で始まるすべての単語と "x"で終わるすべての単語を検索します。私はCorporaによって生成された単語のリストを持っていますが、コードを起動するたびに空白のビューが返されます。str_viewをRの単語リストで使用する

Common_words<-corpora("words/common") 

#start with y 
start_with_y <- str_view(Common_words, "^[y]", match = TRUE) 
start_with_y 

#finish with x 
str_view(Common_words, "$[x]", match = TRUE) 

また、私は今のところ唯一の3文字の長さである言葉、ない アイデアを見つけるしたいと思います。

+2

てください[MCVE(最小の完全な検証例)](http://stackoverflow.com/help/mcve) 。 –

+0

申し訳ありませんが、検証可能な完全な例は何ですか? – Rfanatic

+0

そのリンクはそれを説明しますか? :) 'str_view(s、 '^ y(。)* x $')'についてはどうですか? – Gopala

答えて

0

私はstringrでプログラミングするのではなく、正規表現を学んでいると言います。ここで私は学習のために有用であることが分かってきたいくつかのサイトには、次のとおりです。ここ

ワード文字の\\wまたは短い手のクラス(すなわち、[A-Za-z0-9_]は)と便利ですこれらの2つのケースでは+および{3})。 PSここで私はstringiを使用しています。なぜなら、stringrはそれをバックエンドに使用しているからです。真面目な男を飛ばしているだけ。

x <- c("I like yax because the rock to the max!", 
    "I yonx & yix to pick up stix.") 

library(stringi) 

stri_extract_all_regex(x, 'y\\w+x') 
stri_extract_all_regex(x, '\\b\\w{3}\\b') 

## > stri_extract_all_regex(x, 'y\\w+x') 
## [[1]] 
## [1] "yax" 
## 
## [[2]] 
## [1] "yonx" "yix" 


## > stri_extract_all_regex(x, '\\b\\w{3}\\b') 
## [[1]] 
## [1] "yax" "the" "the" "max" 
## 
## [[2]] 
## [1] "yix" 

EDITも有用であり得るこれらのように思える:

## Just y starting words 
stri_extract_all_regex(x, 'y\\w+\\b') 

## Just x ending words 
stri_extract_all_regex(x, 'y\\w+x') 

## Words with n or more characters 
stri_extract_all_regex(x, '\\b\\w{4,}\\b') 
+0

ありがとう、これは素晴らしいです! – Rfanatic

+0

もう一度、この同じタイプのコードを使って、6,7,8などのコードを繰り返す以外に、6文字以上のすべての単語を指定することができます。ありがとう! – Rfanatic

+0

オープンエンドの量限定子 ''\\ b \\ w {6、} \\ b''を使用してください。リンク先のチュートリアルで少し時間を費やしてください。彼らは時間の価値がある。 –

関連する問題