テキスト抽出
テキスト処理はすべてブラウザ内で完結します。データは送信されません
「このログから IP を全部抜き出したい」「この名簿にメールが何件あるか」「この文章のリンクを一覧にしたい」は日常的に発生しますが、エディタでやるには正規表現を書く(毎回正しいか確認し直す)か、目で追う(数百行で必ず失敗する)かのどちらかです。 ⚠️ どの種類も確実なものだけを拾います —— 拾い漏らすより、誤って拾わないほうがましだからです。「電話番号が 37 件」という結果に注文番号が 20 件混ざっていれば、利用者は 1 件ずつ確認することになり、機能がないより面倒です。そこで: · 電話番号は中国の `1[3-9]` で始まる 11 桁と、`+` を明示した国際番号のみ。市外局番のない 10 桁の数字は何である可能性もあります。 · IP は各オクテットを 0–255 で検証するので `999.1.1.1` は拾いません。 · カード番号は Luhn を通ることを条件にします(「番号チェック」の実装を再利用)。そうしないと注文番号やタイムスタンプが大量に入ります。 · 身分証番号は 18 桁かつチェックディジットが正しいことを条件にします。 結果は種類ごとにまとめ、原文での位置と件数を示します —— 位置は確認のためです。数百行のテキストで 3 番目と 4 番目のメールを取り違えるのはよくあることです。
機能
- 11 種類:URL・メール・電話番号・IP・MAC アドレス・身分証番号・カード番号・日付・ハッシュタグ・@メンション・数値
- 6 つのプリセット:よく使う / すべて / ネットワーク / 連絡先 / 機微情報 / 数値のみ
- ⚠️ 確実なものだけを拾います —— 電話は号段を限定し、IP は各オクテットを検証し、カード番号は Luhn を、身分証番号はチェックディジットを要求します
- 種類ごとに、原文での出現位置(1 始まり・コードポイント単位。emoji でずれません)と件数の集計を表示
- ⚠️ 任意で「カンマを小数点として扱う」(`3,14` → `3.14`)。既定ではオフ —— `1,234` は英語圏では 1234 を意味するためです
- ⚠️ URL とメールの範囲が重なる場合は 1 回だけ数えます(URL を優先)。同じ箇所を二重に数えません
- 重複除去は値で行います:メールは大文字小文字を無視(同じアドレス)、URL は区別(パスの大文字小文字が別ページであることが多い)
- ⚠️ カード番号を拾ったときは「Luhn を通ってもカードとは限らない」と注記し、「番号チェック」での確認を促します
- 複数行の貼り付けにも対応し、出現位置順に並べます
使い方
- テキストを貼り付けます
- 「抽出する種類」でプリセットを選びます(既定はよく使う 4 種類)
- 結果は種類ごとに並び、先頭に件数の集計が出ます
よくある質問
- 明らかに電話番号なのに抽出されないのはなぜですか?
- 市外局番のない番号は確認できないからです。10 桁の数字は電話番号かもしれず、注文番号・身分証の一部・タイムスタンプかもしれません —— 「電話番号が 37 件」に注文番号が 20 件混ざると、利用者は 1 件ずつ確認することになり、機能がないより面倒です。そこで中国の `1[3-9]` で始まる 11 桁と、`+` を明示した国際番号だけを対象にしています。他の形が必要なら正規表現の出番です(当サイトの「正規表現テスト」なら入力しながら一致を確認できます)。
- カード番号に Luhn を要求するのはなぜですか?
- 桁数だけで拾うと大量のものが入るからです:13〜19 桁の数字の羅列はログの至るところにあります(注文番号、タイムスタンプ、長い ID)。Luhn はそのおよそ 9 割を弾きますが、すべてではありません —— たまたま Luhn を満たす長い数字は残ります。そこで個別には「番号チェック」で確認してください。あちらでは「チェックディジットの一致はカードの実在を意味しない」と説明しています。
- URL とメールが重なった場合、二重に数えますか?
- いいえ。`https://example.com/?to=a@b.com` には URL とメールの両方の形があり、URL の一致範囲のほうが広いため、何もしなければ同じ箇所を 2 つの種類がそれぞれ数えて集計が水増しされます。ここでは「占有済みの範囲」で処理し、具体的な種類から順に走査して、先に確保された範囲は後続が飛ばします。
- 重複除去で URL は大文字小文字を区別し、メールは区別しないのはなぜですか?
- 大文字小文字の意味が異なるからです。`a@b.com` と `A@B.COM` は同じメールボックスです(ドメインは大文字小文字を区別せず、ローカル部も実際上は区別されません)。一方 `https://x.com/A` と `https://x.com/a` は多くのサーバーで別のページです —— 統合するとリンクが 1 つしかないと誤解させます。
- 「カンマを小数点として扱う」が既定でオフなのはなぜですか?
- 数字の中のカンマは曖昧だからです。ヨーロッパや南米の多くでは `3,14` は 3.14 ですが、英語圏では `1,234` は 1234 です —— 同じカンマが、一方では小数点、他方では桁区切りになります。テキストだけでは判断できず、間違えると桁が変わります(1.234 と 1234)。しかも結果はごく普通に見えます。そこで既定ではオフとし、データの出所が分かったうえで必要なときだけオンにしてください。
- 出現位置はどう数えますか?
- テキストの1 文字目から数え、コードポイント単位です —— emoji も 1 文字として数えます。そのため `👍 a@b.com` のメールは位置 3 で、文字列の添字で数えた 4 ではありません。同じ値が複数回現れる場合はすべての位置を列挙します(最大 20 件、それ以上は総数のみ)。位置は原文で 1 件ずつ確認するためにあります。
関連ツール
テキスト差分
テキスト2つのテキストを行ごとに比較し、追加・削除・未変更の行をハイライト表示します。変更は最小差分で整列し、すべてブラウザ内で処理します。
文字数カウント
テキスト英語は単語数、日本語や中国語は字数で別々に数えます。文字数・行数・バイト数・読了時間も同時に出し、すべてブラウザ内で処理するので送信しません。
テキスト整形
テキストログや表からコピーした1列を整形します。重複行の削除、並べ替え、空行・前後の空白・行番号の削除、空白のまとめを個別に切り替えできます。
命名規則の変換
テキスト14 の命名規則の間で識別子を変換します。fooBarBaz や FOO_BAR のような混在も語に分解し、連続する大文字も語ごとに切ります。
簡体字・繁体字変換
テキスト中国語を簡体字と繁体字の間で相互変換します。常用語は語単位で置換し、残りは最も一般的な字形を採るため、一部は人の確認が必要です。
正規表現テスト
テキストブラウザで正規表現をテスト:一致のハイライト、キャプチャグループ、置換プレビュー、バックトラック対策。JavaScript・Python・Java・Go・PHP のコード生成も。