R言語のstringrパッケージに含まれているstr_escape()関数について解説します。この関数は、「入力した文字列やデータ内から抽出した文字列を、そのままの文字として正規表現の検索パターンに使いたい」ときに使える関数です。この関数は、「正規表現で特別な意味を持つ文字(メタ文字)」の前に自動でバックスラッシュ(\)を追加し、ただの「プレーンな文字列」として扱えるようにエスケープする関数です。
stringrパッケージは、文字列データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。
概要
str_escape()は、正規表現のメタ文字をエスケープするための関数です。str_escape()は、正規表現エンジンにとって特別な意味を持つ文字であるメタ文字をエスケープします。ほとんどの場合、fixed()の方が高速なので、これを使用する方が適切ですが、ユーザー指定の文字列をパターンに構成する場合はstr_escape()が便利です。
使い方
str_escape(string)
引数
string
文字ベクトルまたは文字ベクトルに変換可能なものを指定します。
使用例
準備
あらかじめ、tidyverseパッケージまたはstringrパッケージを読み込んでおきます。
# library(tidyverse)でもよい
library(stringr)
文字列をエスケープ処理する
正規表現のメタ文字をエスケープするには次のようにします。
str_escape("^A.*")
[1] "\\^A\\.\\*"