Paragraph-level text filtering
Input is split on `/\n\s*\n/` - one or more blank/whitespace-only lines. Each resulting paragraph is tested against the pattern as a single string. A match anywhere in the paragraph passes the filter (in Contains mode); Starts with / Ends with anchor to the paragraph's first/last line respectively (after trim).
Default pattern is `Error` with mode Contains - paragraphs mentioning errors stay, others drop. Toggle Invert to keep only non-matching paragraphs (e.g. filter OUT error logs to see normal activity).
If your paragraphs are NOT blank-line-separated (e.g. single-line items), use Filter list lines instead. Same op family, line-level granularity.
How to use filter list paragraphs
- 1Paste paragraphs separated by blank lines
- 2Set Match pattern (default `Error`)
- 3Pick Mode: Contains, Equals, Starts with, Ends with, or Regex
- 4Toggle Invert to exclude matching paragraphs instead
- 5Output is blank-line-separated paragraphs that match (or don't match, if Invert is on)
Keyboard shortcuts
Drive ListShift without touching the mouse.
What this tool actually does
Blank-line-delimited paragraph filter. Pattern matches against the whole paragraph.
Blank-line paragraph detection
Paragraphs are separated by one or more blank / whitespace-only lines. Back-to-back non-blank lines form a single paragraph. Split regex: `/\n\s*\n/`.
Five match modes
Contains (default), Equals (exact paragraph text, trimmed), Starts with (first line after trim), Ends with (last line after trim), Regex (full regex against paragraph text).
Invert toggle
Flips the filter - keeps non-matching paragraphs. Useful for dropping noise (e.g. Invert + pattern `Error` keeps non-error paragraphs).
Whole word + Case sensitive
Whole word wraps the pattern in `\b...\b` for word-boundary matching. Case sensitive off (default) makes the match case-insensitive. Ignored in Regex mode (encode it yourself).
Invalid regex returns input unchanged
Malformed regex does not break the output - status bar shows "Invalid regex" and the input passes through.
Worked example
Four paragraphs separated by blank lines. Default pattern `Error` in Contains mode keeps the two error paragraphs.
System initialized successfully. All subsystems reporting healthy status. Error: Unable to connect to database. The connection timed out after 30 seconds. Database connection established. Transaction log now active. Error: Timeout during request. Client received HTTP 504.
Error: Unable to connect to database. The connection timed out after 30 seconds. Error: Timeout during request. Client received HTTP 504.
Settings reference
How each option shapes the output using the sample above (4 paragraphs).
| Setting | What it does | Effect on the sample |
|---|---|---|
| Pattern: `Error` (default), Mode: Contains | Keeps paragraphs containing `Error` | 2 Error paragraphs kept |
| Invert: on | Drops matching paragraphs | Keeps `System initialized...` and `Database connection...` |
| Mode: Starts with, Pattern: `Error` | Keeps paragraphs whose first line starts with `Error` | Same as Contains on this sample |
| Mode: Regex, Pattern: `(?i)error|fail` | Full regex match | All paragraphs mentioning error OR failure |
| No blank lines in input (warning) | Entire input is ONE paragraph | Filter passes or drops the whole input as a block |