Rで解析:正規表現をいくつか紹介

Rの解析に役に立つ記事
スポンサーリンク

正規表現のコマンドをいくつか紹介します。

windows11のR version 4.2.2で確認しています。

スポンサーリンク

実行コマンドの紹介

詳細はRで「?regex」を実行してヘルプを確認してください。

#途中まで使用する文字データ
Test <- c("karada &#12356;&#12356;&#12418;&#12398;", "karada&#12356;&#12356; &#12418;&#12398;",
          "karada_&#12356;&#12356;&#12418;&#12398;", "&#12363;&#12425;&#12384;&#12395;&#12356;&#12356;&#12418;&#12398;",
          "&#12363;&#12425;&#12384;&#12395;1&#12356;&#12356;&#12418;&#12398;", "&#12363;&#12425;&#12384;&#12395;1223&#12356;&#12418;&#12398;",
          "&#12363;&#12425;&#12384;&#12395;12234535&#12356;&#12356;&#12418;&#12398;", "&#12363;&#12425;&#12384;&#12395;13234535&#12356;&#12356;&#12418;&#12398;",
          "&#12363;&#12425;&#12384;&#12395;13234335&#12356;&#12356;&#12418;&#12398;", "0123-45-6789",
          "012-3456-7895", "0123456789")

#&#31354;&#30333;&#12434;&#21547;&#12416;&#25991;&#23383;&#21015;&#12395;&#12510;&#12483;&#12481;
Test[grep("\\s", Test)]
[1] "karada &#12356;&#12356;&#12418;&#12398;" "karada&#12356;&#12356; &#12418;&#12398;"

#&#25968;&#23383;3&#12398;&#21069;&#12395;&#25968;&#23383;&#12364;3&#36899;&#32154;&#12395;&#12510;&#12483;&#12481;
Test[grep("\\d{3}?3", Test)]
[1] "&#12363;&#12425;&#12384;&#12395;1223&#12356;&#12418;&#12398;" "&#12363;&#12425;&#12384;&#12395;12234535&#12356;&#12356;&#12418;&#12398;" "&#12363;&#12425;&#12384;&#12395;13234535&#12356;&#12356;&#12418;&#12398;" "&#12363;&#12425;&#12384;&#12395;13234335&#12356;&#12356;&#12418;&#12398;"
[5] "0123-45-6789" "0123456789" 

#&#25968;&#23383;3&#12364;3&#22238;&#20197;&#19978;&#20986;&#29694;&#12395;&#12510;&#12483;&#12481;
#Test[grep("(3.*){3}", Test)]
Test[grep("(3.*){3,}", Test)]
[1] "&#12363;&#12425;&#12384;&#12395;13234535&#12356;&#12356;&#12418;&#12398;" "&#12363;&#12425;&#12384;&#12395;13234335&#12356;&#12356;&#12418;&#12398;"

#&#25968;&#23383;3&#12364;2&#36899;&#32154;&#20986;&#29694;&#12395;&#12510;&#12483;&#12481;
Test[grep("3{2}", Test)]
[1] "&#12363;&#12425;&#12384;&#12395;13234335&#12356;&#12356;&#12418;&#12398;"

#&#12495;&#12452;&#12501;&#12531;&#12354;&#12426;&#12398;&#25968;&#23383;&#12395;&#12510;&#12483;&#12481;
Test[grep("0\\d{1,4}-\\d{1,4}-\\d{4}", Test)]
[1] "0123-45-6789"  "012-3456-7895"

#&#12300;&#12356;&#12356;&#12301;&#12434;&#21547;&#12416;&#25991;&#23383;&#21015;&#12364;&#12510;&#12483;&#12481;
Test[grep("\\w&#12356;&#12356;", Test)]
[1] "karada&#12356;&#12356; &#12418;&#12398;" "karada_&#12356;&#12356;&#12418;&#12398;" "&#12363;&#12425;&#12384;&#12395;&#12356;&#12356;&#12418;&#12398;" "&#12363;&#12425;&#12384;&#12395;1&#12356;&#12356;&#12418;&#12398;"       
[5] "&#12363;&#12425;&#12384;&#12395;12234535&#12356;&#12356;&#12418;&#12398;" "&#12363;&#12425;&#12384;&#12395;13234535&#12356;&#12356;&#12418;&#12398;" "&#12363;&#12425;&#12384;&#12395;13234335&#12356;&#12356;&#12418;&#12398;"

#&#12300;&#12356;&#12356;&#12301;&#12434;&#21547;&#12414;&#12394;&#12356;&#25991;&#23383;&#21015;&#12364;&#12510;&#12483;&#12481;
Test[grep("(*&#12356;&#12356;)", Test, invert = TRUE)]
[1] "&#12363;&#12425;&#12384;&#12395;1223&#12356;&#12418;&#12398;" "0123-45-6789" "012-3456-7895" "0123456789"

#&#29305;&#27530;&#25991;&#23383;(.&#12394;&#12393;)&#12434;&#12456;&#12473;&#12465;&#12540;&#12503;:\\
grep("&#12356;\\.&#12356;", c("ii", "&#12356;.&#12356;&#12356;", "&#12356;. a", "&#12356;&#12356;&#12356;", "&#12356;&#65305;i", "&#12356;9i"))
[1] 2

#&#20219;&#24847;&#12398;&#19968;&#25991;&#23383;&#12395;&#12510;&#12483;&#12481;:.
grep("&#12356;.&#12356;", c("ii", "&#12356;.&#12356;&#12356;", "&#12356;. a", "&#12356;&#12356;&#12356;", "&#12356;&#65305;i", "&#12356;9i"))
[1] 2 4

#&#12354;&#12427;&#25991;&#23383;&#12363;&#12425;&#38283;&#22987;&#12377;&#12427;&#25991;&#23383;&#12395;&#12510;&#12483;&#12481;:^,.,*,$&#12398;&#32068;&#12415;&#21512;&#12431;&#12379;
grep("^&#12356;&#12356;.*$", c("ii", "&#12356;.&#12356;&#12356;", "&#12356;. a", "&#12356;&#12356;&#12356;", "&#12356;&#65305;i", "&#12356;9i"))
[1] 4

#&#12354;&#12427;&#25991;&#23383;&#12391;&#32066;&#20102;&#12377;&#12427;&#25991;&#23383;&#12395;&#12510;&#12483;&#12481;:^,.,*,$&#12398;&#32068;&#12415;&#21512;&#12431;&#12379;
grep("^.*&#12356;&#12356;$", c("ii", "&#12356;.&#12356;&#12356;", "&#12356;. a", "&#12356;&#12356;&#12356;", "&#12356;&#65305;i", "&#12356;9i"))
[1] 2 4

#&#33521;&#25968;&#23383;&#12395;&#12510;&#12483;&#12481;:[A-Za-z0-9]
grep("[A-Za-z0-9]", c("ii", "&#12356;.&#12356;&#12356;", "&#12356;. a", "&#12356;&#12356;&#12356;", "&#12356;&#65305;i", "&#12356;9i"))
[1] 1 3 5 6

#&#25968;&#23383;&#12395;&#12510;&#12483;&#12481;:[0-9]
grep("[0-9]", c("ii", "&#12356;.&#12356;&#12356;", "&#12356;. a", "&#12356;&#12356;&#12356;", "&#12356;&#65305;i", "&#12356;9i"))
[1] 6

#&#31354;&#30333;&#12395;&#12510;&#12483;&#12481;:[[:space:]]
grep("[[:space:]]", c("ii", "&#12356;.&#12356;&#12356;", "&#12356;. a", "&#12356;&#12356;&#12356;", "&#12356;&#65305;i", "&#12356;9i"))
[1] 3

#&#12354;&#12427;&#25313;&#24373;&#23376;&#12434;&#21547;&#12416;&#25991;&#23383;&#21015;&#12395;&#12510;&#12483;&#12481;
grep("^.*doxc.*$", c("ii", "&#12356;.&#12356;&#12356;", "&#12356;.doxc", "&#12356;&#12356;&#12356;", "&#12356;&#65305;i", "&#12356;9i"))
[1] 3

#&#23569;&#25968;&#28857;&#12434;&#21547;&#12416;&#25991;&#23383;&#21015;&#12395;&#12510;&#12483;&#12481;
grep("[+-]?\\d*\\.\\d", c("45454", "-8.0", "8.15452", "7.5", ".23", "&#12356;9i"))
[1] 2 3 4

#https/ftp&#12434;&#21547;&#12416;&#25991;&#23383;&#21015;&#12395;&#12510;&#12483;&#12481;
grep("(https?|ftp)://([^:/]+)",
     c("45454", "-8.0", "https://www.karada-good.net/analyticsr/r-648/", "7.5", ".23", "https://www.karada-good.net/"))
[1] 3 6

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました