を含むgrepの正規表現を探しています。の単語が数字またはアンダースコアで区切られています。 \\b
は、境界ではなく、単語の一部として数字とアンダースコアを考慮します。RのGrepでカスタムの "拡張"境界を持つ単語を探す
例えば、私はマウスを "犬のマウス猫"、 "犬のマウス:猫"、 "犬の猫の猫"、そして "マウス9CAT"のように、と "DOG_MOUSE"。基本的に、私が探している境界線は、大文字でないアルファベット文字に行/式の先頭と末尾を加えたものです(ここでは\\b
で捕捉された他のいくつかのケースがないかもしれません)。
私が試してみた:それらの
"[[0-9_]\\b]MOUSE[[0-9_]\\b]"
"[[0-9_]|\\b]MOUSE[[0-9_]|\\b]"
"[$|[^A-Z]]MOUSE[^|[^A-Z]]"
"[?<=^|[^A-Z]]MOUSE[?=$|[^A-Z]]"
どれも動作しません。
(\\b
は私にとって厳しすぎるので、別の区切り文字で)最終的な結果は
grep(paste("\\b", paste(searchwords, collapse = "\\b|\\b"), "\\b"), targettext)
のようになりますので、私は実際には、(値の長いベクトルに基づいて)いくつかの単語を探しています
。
(これは、ここでコメントでユーザーニックSabbeので尋ねたものと類似の質問です:Using grep in R to find strings as whole words (but not strings as part of words))
ファンタスティック!どうもありがとうございます。これは実際に私のデータ(非常に長い)で\\ bと同じ結果を返しますが、私の信頼水準はあなたのおかげで増えました:) – syre
'\ b'の意味はコンテキストに依存しますが、明確でカスタマイズ可能な境界。 –