文字列の中から半角記号を取得したくて調べて書いたコードです
今回書いた半角記号だけを抜き出す正規表現
/[!-\/:-@[-`{-~]+/g
コード.gsfunction 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
のように指定するとうまくいきました。
参考
Controls and Basic Latin
http://www.unicode.org/charts/PDF/U0000.pdf