[R]文字列から正規表現にマッチする文字列を抜き出す
str_extract関数を使う。str_match関数はその抜き出した文字列を分解して配列にして返す。マッチする文字列が無い場合はNAを返す。
以下は、郵便番号を表していると思われる文字列から、郵便番号の箇所のみ抜き出した例。正規表現では、「3桁の数字」+「「-」か何も無し」+「4桁の数字」からなる文字列を郵便番号と仮定して、抜き出している。str_match関数はマッチした内容を分解して表形式にして返す。
> s <- c("123-4567", "〒123-4567", "1234567", "123@4567", " 123-4567 ")
> str_extract(s, "([0-9]{3})(-*)([0-9]{4})")
[1] "123-4567" "123-4567" "1234567" NA "123-4567"
> str_match(s, "([0-9]{3})(-*)([0-9]{4})")
[,1] [,2] [,3] [,4]
[1,] "123-4567" "123" "-" "4567"
[2,] "123-4567" "123" "-" "4567"
[3,] "1234567" "123" "" "4567"
[4,] NA NA NA NA
[5,] "123-4567" "123" "-" "4567"
« [R]fwriteによる日付時刻型の出力 | トップページ | [R]正規表現を使用してファイル名を表す文字列から拡張子を消す »
「R(正規表現)」カテゴリの記事
- [R]正規表現でIPv4によるIPアドレス表記の文字列かどうか判定する(2026.02.26)
- [R]文字列が指定の正規表現パターンとマッチするかどうか調べる(2025.12.23)
- [R]正規表現を使用して文字列型ベクトルから特定の文字列を含む要素を取り出す(2025.12.06)
- [R]特定の文字列で始まる(始まらない)文字列を抽出する(2025.11.09)
- [R]パターンにマッチするか否かを論理値で返す(2024.12.25)
« [R]fwriteによる日付時刻型の出力 | トップページ | [R]正規表現を使用してファイル名を表す文字列から拡張子を消す »

コメント