Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2018年1月28日日曜日

正規表現で文章から半角記号を抜き出したい /[!-\/:-@[-`{-~]+/g


文字列の中から半角記号を取得したくて調べて書いたコードです

今回書いた半角記号だけを抜き出す正規表現

/[!-\/:-@[-`{-~]+/g



コード.gs
function get_symbols(){
  var str = "abcABC123!bcABC123?かなカナカナ仮名!ひらがなカタカナカタカナ漢字?⼀市ヶ谷代々木";
  var pattern = /[!-\/:-@[-`{-~]+/g;
  var result = str.match(pattern);
  Logger.log(result);
}
意訳
この機能がやること
探索対象の文字列を用意しておく
半角記号のパターン
一致するものを探して
ログに出す







[!-\/:-@[-`{-~] の内訳は?


Controls and Basic Latin の中で
記号(以下のハイライトした範囲)を指定しています
!から/
:から@
[から`
{から~

!から/ は 素直に書くと !-/ ですが
/ はそのまま書くと正規表現を閉じてしまいます
\ (後に続く文字が特別な意味を保つ場合にそれを無効にするエスケープ記号)を書くことで文字列の / としています


補足

英語で

I'm
we're
we'll
don't

などのシングルクオート ' を残したい場合は
' を含まない範囲を Controls and Basic Latin から選択して

/[!-&(-\/:-@[-`{-~]+/g

のように指定するとうまくいきました。


参考

Unicode 10.0 Character Code Charts
http://www.unicode.org/charts/

Controls and Basic Latin
http://www.unicode.org/charts/PDF/U0000.pdf

Latest post

Googleドキュメントの指定した位置にテキストを追加したい(特定の見出しセクションにテキストを追加する)

指定したGoogleドキュメント内の 見出しBセクションにある標準テキストに 一行追加したくて書いたコードです。 ChatGPTとGeminiと何度かやり取りしながら、プロンプトを書くのに試行錯誤しました。 途中で手動修正も入れつつ、動くコードが書けました。 Apps Sc...