« [R]特定の文字列で終わる(終わらない)文字列を抽出する | トップページ | [R]ベクトルから条件に一致する要素を抽出する »

2025年11月 9日 (日)

[R]特定の文字列で始まる(始まらない)文字列を抽出する

正規表現で^記号は文字列の先頭を表すため、これを正規表現パターンに利用する。invertオプション(デフォルト:FALSE)をTRUEにすると、指定した正規表現パターンに一致しない要素を返す。

> ss <- c("石見舞菜香", "鈴木みのり", "瀬戸麻沙美", "のぐちゆり", "和多田美咲")
> # 「の」で始まる氏名
> grep("^の", ss, value = TRUE)
[1] "のぐちゆり"
> # 「の」で始まらない氏名
> grep("^の", ss, invert = TRUE, value = TRUE)
[1] "石見舞菜香" "鈴木みのり" "瀬戸麻沙美" "和多田美咲"
> # 「の」を含むが「の」で始まらない氏名
> grep("^.+の", ss, value = TRUE)
[1] "鈴木みのり"

ルックアラウンド式(lookaround expression)を使うこともできるが、perlオプション(デフォルト:FALSE)をTRUEにする必要がある。

> grep("^(?=の)", ss, value = TRUE)
grep("^(?=の)", ss, value = TRUE) でエラー:
不正な正則表現です、理由は 'Invalid regexp'
> # 「の」で始まる氏名 ※肯定的な先読み
> grep("^(?=の)", ss, perl = TRUE, value = TRUE)
[1] "のぐちゆり"
> # 「の」で始まらない氏名 ※否定的な先読み
> grep("^(?!の)", ss, perl = TRUE, value = TRUE)
[1] "石見舞菜香" "鈴木みのり" "瀬戸麻沙美" "和多田美咲"

ルックアラウンド式については、以下のページの「Lookaround の概要」を参照のこと。
https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expression-language-quick-reference#lookarounds-at-a-glance

« [R]特定の文字列で終わる(終わらない)文字列を抽出する | トップページ | [R]ベクトルから条件に一致する要素を抽出する »

R(正規表現)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]特定の文字列で終わる(終わらない)文字列を抽出する | トップページ | [R]ベクトルから条件に一致する要素を抽出する »

無料ブログはココログ

■■

■■■