技術とかの雑なToday I Learnedメモ

2024-01-23

2024-01-23

あけましておめでとうございます

去年はぼちぼち書いたりまた書かなくなったりしてました

今年もマイペースにやっていこうと思います

touchでファイルを作るときにファイルパス中に存在しないディレクトリが出てきたらついでにmkdirしてほしい

ファイル作成をtouchコマンド、ディレクトリ作成をmkdirでやっていて、新たにディレクトリを作ってその中にファイルを作りたい場合はmkdirしてからtouchしないといけないので、これをひとまとめにできないかな〜と思っていた

知り合いに「codeコマンドでいけるよ」と言われたのでやってみたらいけた、すごい

たとえばこのサイトでいうと、コンテンツをcontents/[YYYY-MM]/[YYYY-MM-DD].mdというパスに配置しているので、それこそ前回の投稿から年や月が変わった今日のこのポストのようなファイルを作るときに

mkdir contents/2024-01
touch contents/2024-01-23.md

のようにしないといけなかったのだが、これをcodeでやると

code contents/2024-01/2024-01-23.md

とするだけでVSCodeで当該パスでファイルを開いてくれて、一度保存することでディレクトリもファイルも作ってくれる

VSCodeを使っている限りこの方法が通用するので、今後もずっとcodeコマンドでファイル(とディレクトリも?)を作っていくと思う

あまりにも便利

文中の日本語にマッチする正規表現

上記を知りたくてググったりした

JavaScript | 正規表現判別サンプル集 | 1 NOTES

上記の記事とは別にChatGPTに聞いたら、それもまた別の正規表現になった

  1. `const regexp2 = /[^\x01-\x7E]/
  2. const regexp3 = /[\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]/

で、それぞれがどうなるのかTypeScript: プレイグラウンド - TypeScriptとJavascriptを探求するためのオンラインエディタで試してみたところ、両方ともちゃんと日本語にマッチした

じゃあ1と3ってどう違うの?というのをChatGPTに聞いたら

  • 1はASCII文字セット外の文字にマッチする
    • 制御文字、基本的な英数字、一部の記号を含む標準ASCIIテーブルの範囲、の否定
    • 上記の範囲外にマッチするので、日本語以外の非ASCII文字(ラテン文字やキリル文字など)にもマッチする
  • 2は特定のUnicode範囲に含まれる文字列にマッチする
    • ここで指定されているUnicode範囲は、ひらがなやカタカナ、漢字を含む日本語特定の記号や句読点の範囲が指定されている
    • この正規表現は日本語以外の文字にはマッチしないので、日本語だけにマッチさせたいならこちらを使う

といった返答が返ってきた

ChatGPTってすごいね

じゃあASCII文字ってなんなのさ、というのを調べたら

ASCII(アスキー / US-ASCII)とは - 意味をわかりやすく - IT用語辞典 e-Words

とあった

文字コードは沼が深そうだが、とにかくアメリカが定めた規格でISOがほぼ同じ内容で標準化して、それが世界各国で使われているけど、英語以外の文字を扱うために拡張して使ったりもされているらしい

1文字を7ビットで表すが現代のコンピューターのデータ管理の単位が1バイト(8ビット)なので、昔はパリティビット(基本/応用情報で出てきた!)として使っていたけど今ではこれを使って上述の拡張ASCIIを作っているらしい

なるほどな〜