したがって、day
またはの表示が続く数字のシーケンスを含むベクトルv
があります。唯一day
のシーケンスを選択したいと思います。数字のシーケンスの後のr - grep OR
v = c('abc_1day', 'abc_2day', 'abc_3day', 'abc_1week', 'abc_2dweek')
私はそれがないのはなぜor
条件がここに
v[grep('abc_|day', v)]
働くだろうと思いましたか?
したがって、day
またはの表示が続く数字のシーケンスを含むベクトルv
があります。唯一day
のシーケンスを選択したいと思います。数字のシーケンスの後のr - grep OR
v = c('abc_1day', 'abc_2day', 'abc_3day', 'abc_1week', 'abc_2dweek')
私はそれがないのはなぜor
条件がここに
v[grep('abc_|day', v)]
働くだろうと思いましたか?
我々は
grep('^abc_[0-9]+day$', v, value = TRUE)
#[1] "abc_1day" "abc_2day" "abc_3day"
NOTEを使用することができます。これは、文字列の末尾に日が続く数字のOPの基準を考慮し、「ABC」で始まります。
をOR条件はabc_
かday
のいずれかに一致しています。
オプションの1つは、それがabc_
が付け加えている場合のみ、day
が一致する基準と数字を満たす\K
を、使用することです:これはakrunのgrep('^abc_[0-9]+day$', v, value = TRUE)
、文字列全体に一致するとは異なり
v[grep('abc_[0-9]+\\Kday', v, perl = TRUE)]
[1] "abc_1day" "abc_2day" "abc_3day"
。特に、\K
の有用な利点は、lookaroundsよりも可変長であることができることである。
'v [grep( 'abc _ \\ d +日'、v)]'または 'grep( 'abc _ \\ d +日'、v、値= TRUE)'を試してください。 '' abc_ | day''パターンは、 '' abc_' *または* 'day'のいずれかと一致します。すべての項目に 'abc_'が含まれているので、あなたは現在のパターンでそれらをすべて取得します。 –