R×stringr::str_like SQLのLIKE演算子と同じ方法で文字列のパターンを検出する

R言語で、SQLのLIKE演算子と同じ方法で文字列のパターンを検出する方法について解説します。文字列の操作には、tidyverseパッケージに含まれているstringrパッケージを使用するのが便利です。ここでは、stringrパッケージのstr_like()を使用した方法についてお伝えします。

str_like()の概要

str_like()は、SQLのLIKE演算子と同じ方法で文字列のパターンを検出するための関数です。str_like()は、SQLのLIKE演算子の規則に従います。

  • 文字列全体に一致する必要があります
  • 「_」は、1文字と一致します(. など)
  • 「%」は、任意の数の文字と一致します(.* など)
  • 「\%」と「\_」は、リテラルの「%」と「_」に一致します
  • デフォルトでは、大文字と小文字は区別されません

str_like()の使い方


str_like(string, pattern, ignore_case = TRUE)

str_like()の引数

string

文字ベクトルまたは文字ベクトルに変換可能なものを指定します。

pattern

SQLの「like」パターンを含む文字ベクトルを指定します。
詳細は上記を参照してください。

ignore_case = TRUE

大文字と小文字を区別するかどうかを指定します。
デフォルトはTRUEで、SQLのLIKE演算子に一致します。

str_like()の戻り値

文字列と同じ長さの論理ベクトルが返されます。

準備

あらかじめ、tidyverseパッケージを読み込んでおきます。


library(tidyverse)

使用例

文字列「あいうえお」と「かきくけこ」で文字列「あ」から始まる文字列かどうかを確認するには次のようにします。


str_like(c("あいうえお", "かきくけこ"), "あ%")

[1]  TRUE FALSE