# エンジニアの道具箱(engineer-tool.com) > エンジニアが毎日触れる道具を、調べたことだけで比べるサイトです。無料の小道具(正規表現チェッカー)と、Python・Git などの挙動の違いや、技術書・ガジェット・作業環境の記事を置いています。運営は TechAthletes(屋号)です。 運営: TechAthletes(屋号)。連絡先: contact@tech-athletes.com 更新日: 2026-11-08 人が読む同じ内容のページ: https://engineer-tool.com/ai/ ## 主なページ - [トップ](https://engineer-tool.com/): 小道具と記事の入口 - [正規表現チェッカー](https://engineer-tool.com/tools/regex/): 無料・入力は送信しない - [ブログ](https://engineer-tool.com/blog/): 記事の一覧 - [運営者情報](https://engineer-tool.com/about/): 運営者と書き方の約束 - [広告について](https://engineer-tool.com/ad-policy/): 広告・アフィリエイトの扱い - [AI・検索向けの要約](https://engineer-tool.com/ai/): このページ ## できること - 正規表現チェッカー(無料):パターンを書きながら一致箇所とグループを確かめられます。入力した内容はブラウザの中だけで処理し、どこにも送信しません(通信を行うコードがありません)。 - 記事:Python・Git などの既定の挙動の違い、技術書の選び方、開発用のガジェット、作業環境の比較。 - 数字は出どころを書きます。出どころを示せない数字は書きません。 ## やらないこと・できないこと - 試していないことを「試した」と書きません。 - 正規表現チェッカーは JavaScript の RegExp で動きます。Python・PCRE・Go などは書き方が細かく違うため、ここで通っても他の言語でそのまま通るとは限りません。 - 価格は変わるため原則として書きません(販売ページで確認していただく形です)。 - 報酬が高いことを理由に順位を上げること、出どころの無い点数・評価・順位を出すことはしません。 ## 料金と無料の範囲 - 記事も正規表現チェッカーも無料です。サイトは広告とアフィリエイト(Amazon アソシエイト・楽天アフィリエイト・A8.net など)の収益で運営しています。 - リンクを経由して購入されても、販売価格は変わりません。アフィリエイトのリンクには「広告」と明記しています。 ## 正規表現チェッカーの使い方 1. パターンの欄に正規表現を書く(/ と / の間)。 2. 必要なフラグ(g 全部探す・i 大小を無視・m 行頭/行末を各行に・s . が改行にも当たる・u Unicode)に印を付ける。 3. 対象の文字列を入れると、一致した箇所に色が付き、グループの中身が表に出ます。 ## よくある質問 ### エンジニアの道具箱は誰が運営していますか? TechAthletes(屋号)が運営しています。連絡先は contact@tech-athletes.com です。 ### 正規表現チェッカーに入れた文字列は送信されますか? 送信されません。入力した内容はブラウザの中だけで処理しています(通信を行うコードがページにありません)。 ### 正規表現チェッカーで通れば Python でも通りますか? そのまま通るとは限りません。この道具は JavaScript の RegExp で動いていて、Python・PCRE・Go などは書き方が細かく違います。 ### 記事のリンクは広告ですか? アフィリエイトのリンクには「広告」と明記し、rel="sponsored nofollow" を付けています。リンクを経由して購入されても販売価格は変わりません。 ### 間違いを見つけたらどうすればよいですか? contact@tech-athletes.com までお知らせください。 ## 記事 - [javascript 空配列はPythonと真偽が逆になる?](https://engineer-tool.com/blog/empty-array-truthy-javascript-falsy-python/): 2026-11-08 — 要点 JavaScriptの空配列は、Boolean()でもif文でも真として扱われた(出典: 自社の実測(2026-10-25)) Pythonの空リストは、bool()でもif文でも偽として扱われた(出典: 自社の実測(2026-10-25)) 要素数が0かを調べる書き方では、両言語で空であることを判定できた(出典… - [object.keys 順番はPythonの辞書とどう違う?](https://engineer-tool.com/blog/object-key-order-numeric-keys-javascript/): 2026-11-07 — 要点 文字と数字が混ざるキーでは、PythonとJavaScriptで列挙順が異なった(出典: 自社の実測・2026-10-26)。 b, c, aという文字キーだけの例では、両方とも追加順を保った(出典: 自社の実測・2026-10-26)。 JavaScriptで10, 2, 1の順に追加したキーは、1, 2, 1… - [python 連鎖比較はJavaScriptと何が違う?](https://engineer-tool.com/blog/chained-comparison-python-vs-javascript/): 2026-11-06 — 要点 3 > 2 > 1 はPythonではTrue、JavaScriptではfalseになりました。(出典: 自社の実測(2026-10-26)) 比較した3組のうち、答えが分かれたのはこの1組です。残りの2組は偶然一致しました。(出典: 自社の実測(2026-10-26)) Pythonでも、括弧で区切… - [python スライス 範囲外はGoと何が違う?](https://engineer-tool.com/blog/slice-out-of-range-python-javascript-go/): 2026-11-04 — 要点 Pythonのリストでは、終了位置が範囲外でも存在する部分を返し、開始位置も超えると空リストを返した(出典: 自社の実測・2026-10-25)。 JavaScriptのslice()も、測定した範囲ではPythonと同じ結果だった(出典: 自社の実測・2026-10-25)。 Goでは、範囲内のスライス式は結果… - [json.dumps nan:PythonとJS・Goの違いは?](https://engineer-tool.com/blog/json-nan-infinity-python-javascript-go/): 2026-11-03 — 要点 Pythonの既定設定はNaN・Infinityをそのまま出力し、JavaScriptはnullに変換した(出典: 自社の実測・2026-10-25) Goのjson.Marshalは、NaNを含む値の変換でエラーを返した(出典: 自社の実測・2026-10-25) Pythonもallow_nan=Falseを… - [python 浅い コピー 深い コピーは入れ子でどう違う?](https://engineer-tool.com/blog/shallow-vs-deep-copy-nested-lists/): 2026-11-02 — 要点 入れ子のリストを .copy() した後、内側の要素を書き換えると元のリストも変化した。(出典: 自社の実測・2026-10-25) 同じ構造で copy.deepcopy() を使った場合は、コピー側の変更が元のリストに影響しなかった。(出典: 自社の実測・2026-10-25) 数値だけの1階層のリストでは、… - [nan 比較でPython・JavaScript・Goはどう違う?](https://engineer-tool.com/blog/nan-is-never-equal-to-itself/): 2026-11-01 — 要点 NaNを自分自身と比較すると、Python・Goの==、JavaScriptの===はいずれも偽だった(出典: 自社の実測・2026-10-25)。 NaNを渡した専用関数は、測定した3言語すべてで真を返した(出典: 自社の実測・2026-10-25)。 JavaScriptでは、文字列"abc&quo… - [nfc nfd 違い:PythonとJavaScriptで「が」は等しい?](https://engineer-tool.com/blog/nfc-nfd-text-equality-python-javascript/): 2026-10-31 — 要点 NFCとNFDで作った「が」は、PythonとJavaScriptのどちらでも比較で一致しなかった(出典: 自社の実測・2026-10-25)。 今回の「が」は、NFCでは1コードポイント、NFDでは2コードポイントだった(出典: 自社の実測・2026-10-25)。 NFD側をNFCへ正規化すると、両言語ともN… - [0.1 + 0.2はPythonとGoでなぜ違う?](https://engineer-tool.com/blog/float-01-plus-02-python-javascript-go/): 2026-10-30 — 要点 Python・JavaScriptでは、今回の実測で足し算の結果と0.3が一致しなかった(出典: 自社の実測・2026-10-25)。 Goでは、数値を直接書くか、変数に入れてから足すかによって比較結果が変わった(出典: 自社の実測・2026-10-25)。 Goの公式仕様は、定数式をコンパイル時に評価すると定め… - [python 割り算はGo・JavaScriptとどう違う?](https://engineer-tool.com/blog/negative-division-modulo-python-javascript-go/): 2026-10-29 — 要点 -7 を 2 で割ると、Pythonの // は -4、JavaScriptの Math.trunc とGoの整数 / は -3 だった(出典: 自社の実測・2026-10-20) 同じ計算の余りは、Pythonの % が 1、JavaScriptとGoの % が -1 だった(出典: 自社の実測・2026-10… - [base64 改行はmacOSとOpenSSLでどう違う?](https://engineer-tool.com/blog/base64-newline-openssl-python-go/): 2026-10-28 — 要点 macOS付属のbase64は折り返さず末尾に改行を付け、OpenSSLの既定は64文字ごとに改行した(出典: 自社の実測・2026-10-20)。 OpenSSLとLibreSSLは、末尾改行のない1行を既定のデコードに渡すと、終了コード0で出力が空になった(出典: 自社の実測・2026-10-20)。 -A付… - [python split 空白はPythonとGoでどう違う?](https://engineer-tool.com/blog/split-whitespace-python-javascript-go/): 2026-10-27 — 要点 Pythonの引数なしsplit()とGoのFieldsは、測った9種類の入力ですべて同じ結果だった(出典: 自社の実測・2026-10-20)。 JavaScriptはtrim()後に空白で分割しても、空文字列では空の要素が1つ残った(出典: 自社の実測・2026-10-20)。 Goの正規表現の\sでは、全角… - [SQLiteの数値日時は修飾子なしとunixepochでどう違う?](https://engineer-tool.com/blog/sqlite-no-date-no-boolean/): 2026-10-26 — 数値を渡しただけではUnix時刻にならない SQLiteで日時を扱うときは、「保存した数値の意味」と「日時関数が数値をどう読むか」を分けて考える必要がある。整数で保存した値を日時関数に渡しても、その整数がUnixタイムスタンプとして解釈されるとは限らない。 公式ドキュメントでは、日時を表す形式として、ISO-8601の… - [Ctrl+W・Ctrl+U・Option+Deleteはどこまで消す?bash・zsh・Claude Codeで実測](https://engineer-tool.com/blog/terminal-ctrl-w-ctrl-u-option-delete/): 2026-10-25 — 同じ削除キーでも、残る文字列が違う cd ~/work/my-app/src の末尾で、最後の src だけを消したい。そんなとき、Ctrl+WとOption+Deleteのどちらを使うかは、入力している場所によって変わる。 今回の実測記録では、bashと端末内のClaude Codeは、Ctrl+Wでパス全体を消し、… - [PythonのfloatとDecimalで0.1はどう違う?](https://engineer-tool.com/blog/python-round-banker/): 2026-10-24 — 0.1と表示されても、正確な0.1とは限らない Pythonで小数を計算するとき、画面に見える数字と、実際に保持されている値を区別する必要がある。decimalの公式ドキュメントでは、0.1 + 0.1 + 0.1 - 0.3は十進浮動小数点で正確にゼロになる一方、二進浮動小数点ではゼロに近い小さな差が残ると説明されて… - [Pythonのsubprocess、バイナリとテキストはどう違う?](https://engineer-tool.com/blog/python-subprocess-shell-true/): 2026-10-23 — 出力を取得する指定と、文字列にする指定は別 subprocess.run()で外部コマンドを呼び、その出力をPythonで扱いたい。このとき区別したいのが、出力を取得するかどうかと、取得した出力をどの型で受け取るかだ。capture_output=Trueは標準出力と標準エラーを取得する指定であり、それだけではテキスト… - [Pythonのzoneinfoは既定と空の検索パスで何が違う?](https://engineer-tool.com/blog/python-datetime-tz-default/): 2026-10-22 — タイムゾーンの指定とデータの用意は別の問題 PythonでZoneInfo("Asia/Tokyo")のようにタイムゾーンを指定するとき、確認したいのはキーの名前だけではない。そのキーに対応するタイムゾーンデータを、zoneinfoがどこから読み込むかも関係する。 公式ドキュメントによると、zone… - [Pythonのisは小さい整数と大きい整数で違う?](https://engineer-tool.com/blog/python-is-vs-equals/): 2026-10-21 — 同じ整数を書けば、isの結果も同じなのか Pythonで同じ値の整数を別々の名前に代入したとき、その二つをisで比べた結果は、値が等しいことだけで決められるのでしょうか。公式ドキュメントの「Literals and object identity」には、小さい整数と大きい整数で異なる結果になるCPythonの例が載って… - [PythonのNFC・NFD・NFKC・NFKDはどう違う?](https://engineer-tool.com/blog/count-characters-fullwidth-emoji/): 2026-10-20 — 見た目が同じ文字列をどうそろえるか PythonでUnicode文字列を扱うとき、見た目が同じであることと、同じ表現であることは分けて考える必要があります。公式ドキュメントは、U+00C7(LATIN CAPITAL LETTER C WITH CEDILLA)という文字を、U+0043(LATIN CAPITAL L… - [os.path.joinとpathlibで絶対パスはどう結合される?](https://engineer-tool.com/blog/python-path-join-absolute/): 2026-10-19 — 基準のディレクトリが結合後に残らないのはなぜか 基準となるディレクトリに別のパスを結合するとき、先に渡したディレクトリが必ず残ると考えていないだろうか。Pythonのos.path.join()と、pathlibのパスオブジェクトでは、その前提は成立しない。途中に絶対パスがあると、それ以前の部分を無視するという規則があ… - [PythonのCSV設定とUTFの設定は何が違う?](https://engineer-tool.com/blog/python-csv-bom-excel/): 2026-10-18 — CSVの「既定」はどの設定を指すのか CSVを扱うとき、「既定の形式」という言葉だけでは、確認する対象が定まりません。フィールドを何で区切るか、どの文字を引用符にするか、行末をどう書くかという設定があります。一方、Unicodeの文字をどの形式で表現するかという選択もあります。 Pythonのcsv公式文書が説明するd… - [Gitの改行変換はtext属性とautocrlfどちらが効く?](https://engineer-tool.com/blog/git-crlf-autocrlf-gitattributes/): 2026-10-17 — 何が困るのか Windows と macOS / Linux が混ざったチームで、触っていないはずのファイルが git status に大量に出てくる。差分を見ると全行が変わっているが、中身の文字は同じで、改行コードだけが CRLF と LF で入れ替わっている。こういうとき「core.autocrlf を true … - [Python 3.15のopen()既定はUTF-8かロケールか](https://engineer-tool.com/blog/python-open-encoding-default/): 2026-10-16 — 何が困るのか:encoding を書かずに open() した Linux や macOS で書いたスクリプトを Windows に持っていくと、open("data.json") のように encoding を省略した箇所で UnicodeError や文字化けが出ることがある。PEP 686 は… - [JSON に日本語を入れるとエスケープされるのはどれ? Python・Node.js・Go の既定を実測して比べた](https://engineer-tool.com/blog/json-escape-japanese-python-node-go/): 2026-10-09 — 同じデータを JSON にしたのに、片方のサービスでは {"name":"テスト"}、もう片方では {"name":"\u30c6\u30b9\u30c8"} になる。壊れているように見えますが、どちらも正しい JSON です。違うのは言語の既定値で、どれがどう振る舞うかを覚えていないと、ログの差分比較やバイト数の見積… - [正規表現の \d は全角数字に当たるか|Python・JavaScript・Go の違い(2026年版)](https://engineer-tool.com/blog/regex-d-fullwidth-python-javascript-go/): 2026-10-08 — \d は「数字1文字」だと思って書いたのに、全角の「1」が通ってしまった(あるいは通らなかった)——という食い違いは、言語によって \d の定義が違うことから来ています。結論を先に書くと、Python は既定で Unicode の数字に当たり、JavaScript と Go は [0-9] だけです。 結論(手元で動か…