LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Sunday, January 28, 2018

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

Extracting data from Google Sheets with regular expressions

Introduction Regular expressions are a powerful tool that can be used to extract data from text.  In Google Sheets, regular expressions ca...