2016-07-13 6 views
0

ずに手紙を見つける:使用grepの私はこれらのコードを持っている別の

x=c('a','a,b','a-c','ab') 
y=c('a') 
grep(y,x,ignore.case = T) 

は結果が

> grep(y,x) 
[1] 1 2 3 4 

あるしかし、私は結果が "A" と、 "1 2 3" であることを期待します「a」が「ab」のように区切られていないことを除いて、何かまたは単に「a」で区切られています。 ありがとうございました!

+4

セパレータは、それとは何の関係もありません。 'grep()'に文字 "a"だけを見せて、それをすべての文字列で見つけます。 –

答えて

3

yにワード境界を追加します。

x=c('a','a,b','a-c','ab') 
y=c('a\\b') 
grep(y,x,ignore.case = T) 
# [1] 1 2 3 
1

OPのは、それがの終わりになることができます「A」([^a-z])または(|)は、次のいずれかの文字を持っていないことを伴うパターンを持って望んでいると文字列$

grep("a([^a-z]|$)", x) 
#[1] 1 2 3 

それとも我々はそれが文字列の末尾である句読点([[:punct:]])のいずれかが「A」または(|)に従うことを特定したい場合は、その後、

grep("a([[:punct:]]|$)", x) 
#[1] 1 2 3 
関連する問題