正規表現で行を抽出
リストを貼り付け、正規表現を 1 本書くだけで一致する行だけが手に入ります。ログ整理、リード抽出、「条件に合う行だけ欲しい」あらゆる場面に。
または Ctrl+Enter
このツールを使うべき場面
ガイド5 万行のサーバーログから ERROR/WARN 行だけを残す。サーバーで grep を走らせる必要はありません。
メールアドレスの長い一覧から、gmail だけ、または @会社名.com ドメインだけを取り出します。
サイトマップのダンプから特定パターンに合う URL だけを残す。Excel のフィルタダイアログは不要。
正規表現をビジュアルに反復: パターンを編集 → 実行 → 残る行を確認。よく使う 6 つのプリセットですぐ始められます。
使い方
3 ステップ-
01
テキストを貼り付けるか .txt をドロップ
デスクトップで 10 万行 / モバイルで 5,000 行までライブプレビュー。それを超える入力は自動で大容量モードに切替 — 同じエンジン、ページは反応し続け、.txt ダウンロードを返します。
-
02
正規表現を 1 つ書く
JavaScript 風味(スラッシュは不要)。Email、URL、IP、日付、時刻、電話の 15 プリセットに加え、abc プレースホルダーを置き換える Starts/Ends/Contains などのパラメトリックパターンも用意。
-
03
実行を押す
一致した行は残り、それ以外は削除されます。実行前に大文字小文字、トリム、空行削除、重複削除、シャッフルのトグルを切り替え可能。
内部の仕組み
技術ノート- アルゴリズム
- JavaScript ネイティブ RegExp · 1 行に 1 回 re.test()
- スループット
- 10 万行のマッチを 2024 年 M3 MacBook Air で ≈380 ms
- スレッディング
- ファイル ≥ 2 MB または ≥ 10 万行で Web Worker
V8 / SpiderMonkey と同じ ECMA-262 エンジン。「大文字小文字を区別」トグルが ON でない限り i フラグ(大文字小文字無視)がデフォルト。
O(n) スキャン、マッチ文字列以外の行ごとアロケーションなし。1 回あたり 80 MB のハードリミットでギガバイト級入力を防止。
メインスレッドは反応し続け、Worker が同じ dedupe.js エンジンを読み込んで結果を返却。
プライバシーと制限
どこに何が残るかすべてブラウザー内で実行。テキストは決してアップロードされません — fetch なし、XHR なし、入力データへのアナリティクスなし。ページを読み込んだあとはネットを切断してもツールは動作。1 回あたり 80 MB のハードリミットで複数ギガバイトのログでタブがフリーズするのを防止。
よくある使用シーン
出番大規模なログフィルタリング
10 万行のサーバーログから ERROR / WARN / FATAL の行だけを残す。SSH で入って grep のバリエーションを試すのではなく、pattern を視覚的に反復。
リードリストのクリーンアップ
5 万行のメールエクスポートから gmail.com や @自社.com のアドレスだけを抽出 —— Excel のフィルタダンスもアップロードもなし。
サイトマップの監査
20 万行のサイトマップダンプを、特定のパスパターンにマッチする URL だけに絞る。ホームの重複行削除ツールと組み合わせれば一意な URL リストになる。
データを手放さずに pattern をテスト
自分の実データに対して regex を反復(regex101 のおもちゃサンプルではなく)—— 何もアップロードせずに。調整、実行、マッチを確認。
パフォーマンスと比較
実測値| 指標 | 値 | 備考 |
|---|---|---|
| スループット · 10 万行 | DedupeLines: Chrome 132 で約 380 ms · GNU grep -E: 約 160 ms | 測定機: 2024 年 M3 MacBook Air。参照データセット: 10 万行のログ、pattern /^(ERROR|WARN)/。素の速度では grep が勝つ;DedupeLines は「SSH 不要、インストール不要、どのブラウザータブでも動作 —— iPad やロックダウンされた会社の Windows でも」で勝つ。 |
| メモリフットプリント | DedupeLines: JS ヒープで入力の約 3 倍 · grep: RSS で入力の約 1.2 倍 | ブラウザー JS のオーバーヘッド vs ネイティブバイナリ。1 回あたり 80 MB のハードリミットで OOM タブクラッシュを防止;50 MB のログは常駐メモリ 200 MB 以下に収まる。 |
| 非同期オフロード閾値 | DedupeLines: デスクトップで 2 MB / 10 万行 · regex101.com: エディタ約 5 万文字上限 | 閾値を超えると DedupeLines は Web Worker にオフロード;メインスレッドは応答可能のまま。iOS Safari のメモリ制限がモバイル側のより低い閾値(300 KB / 5,000 行)を決めている。 |
| 正規表現エンジン | DedupeLines: ECMA-262 §22.2 RegExp · grep: POSIX BRE / ERE | JavaScript ネイティブ RegExp —— Chrome、Firefox、Safari、Edge で同じエンジン。Lookbehind、名前付きグループ、Unicode プロパティエスケープ(\p{…})すべてサポート。grep の POSIX 風味はより保守的。 |
| コールドスタートレイテンシ | DedupeLines: 0 ms(ページ読み込み済み) · リモートへの SSH: 200-500 ms RTT | リモートマシンへのラウンドトリップなし。ページがロードされれば、regex はキー押下のように速く、ツールはオフラインでも動作する。 |
よくある質問
回答どの正規表現フレーバーを使っていますか?
JavaScript 組み込みの RegExp(ECMA-262)。後読み、名前付きグループ、Unicode プロパティエスケープ(\p{…})はモダンな Chrome、Firefox、Safari、Edge で動作。パターンの前に / を付けないでください。入力欄を囲むスラッシュは装飾です。
正規表現が何もマッチしません。なぜ?
主な原因は 3 つ: (1)「空白をトリム」トグルが OFF で行末に空白があり ^…$ アンカーが壊れている、(2)「大文字小文字を区別」トグルが ON で文字の大小が一致しない、(3) スラッシュをエスケープした — JavaScript 正規表現ではスラッシュのエスケープは不要。
パターンを複数行に渡ってマッチさせられますか?
いいえ — このツールは設計上 1 行ごとに正規表現を実行します。行をまたぐマッチが必要なら、dotall フラグや multiline アンカーを直接サポートする regex101.com のような正規表現 IDE を使ってください。
データはどこかに送信されますか?
いいえ。マッチはすべてブラウザータブ内で実行されます。アップロードのステップ、サーバー側処理、貼り付けたテキストへのテレメトリーはありません。読み込み後に Wi-Fi を切ってもツールは動作します。
ファイルサイズの制限は?
1 回あたり 80 MB のハードリミット。デスクトップで 2 MB(モバイルで 300 KB)を超えると大容量モードに切り替わり、テキストは textarea を経由せず、処理は Web Worker で行われ、結果は .txt としてダウンロードされます。