piapia123
ja

テキスト抽出

テキスト

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

「このログから 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 を通ってもカードとは限らない」と注記し、「番号チェック」での確認を促します
  • 複数行の貼り付けにも対応し、出現位置順に並べます

使い方

  1. テキストを貼り付けます
  2. 「抽出する種類」でプリセットを選びます(既定はよく使う 4 種類)
  3. 結果は種類ごとに並び、先頭に件数の集計が出ます

よくある質問

明らかに電話番号なのに抽出されないのはなぜですか?
市外局番のない番号は確認できないからです。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 件ずつ確認するためにあります。

関連ツール