R言語のstringrパッケージに含まれているstr_match()関数について解説します。この関数は、「正規表現にマッチする最初の部分を見つけ、さらにカッコ ( ) で指定したグループ(サブパターン)ごとに分解して抽出したい」ときに使える関数です。各データから最初の1箇所を抽出するのに便利です。
stringrパッケージは、文字列データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。
概要
str_match()は、一致した文字列の中から特定のグループだけを抽出するための関数です。名前なしの(パターン)キャプチャグループ、および名前付き(?
使い方
str_match(string, pattern)
引数
string
文字ベクトルまたは文字ベクトルに変換可能なものを指定します。
pattern
正規表現を指定します。
パターンには少なくとも1つのキャプチャグループを含める必要があります。
戻り値
文字列/パターンの長さと同じ行数の文字行列を返します。
最初の列は完全な一致で、その後に各キャプチャグループごとに1列が続きます。「名前付きキャプチャグループ」を使用した場合(例: (?
使用例
準備
あらかじめ、tidyverseパッケージまたはstringrパッケージを読み込んでおきます。
# library(tidyverse)でもよい
library(stringr)
一致した文字列の中から特定のグループだけを抽出する
文字列「あいうえお」と「かきくけこ」で、間に「う」が含まれる文字列に対して、最初と最後の一文字を出するには次のようにします。
str_match(c("あいうえお", "かきくけこ"), "^(.).*う.*(.)$")
[,1] [,2] [,3]
[1,] "あいうえお" "あ" "お"
[2,] NA NA NA