Filter List
Filter list items by text or regex - contains, starts, ends, equals, regex modes; invert, case-sensitive. Free, offline, client-side, instant, secure.
Filter a list by pattern. Five modes - contains,
starts, ends, equals,
regex. Toggle invert (keep non-matches),
case-sensitivity, and skip-empty. Newline / comma / tab / semicolon /
pipe / space separators. Stats line shows matched / filtered counts.
How to Use Filter List
- Paste your list into the text area. Choose the separator that matches how items are joined - newline (one per line) is the default, but comma, tab, semicolon, pipe and space all work.
- Pick a filter mode. Contains keeps items where the pattern appears anywhere. Starts with / ends with anchor the match. Equals needs an exact match (after case-folding if case-insensitive). Regex lets you use anchors, character classes, and quantifiers.
- Type a pattern. A plain string for the first four modes; a valid JavaScript regex for the regex mode (no need to wrap in slashes - write
^foo$, not/^foo$/). - Adjust the toggles. Invert swaps the keep/drop logic - useful for removing every item that matches. Case-sensitive off enables case-folding for non-regex modes and adds the
iflag for regex. Skip empty drops blank items before filtering and reports the count. - Click Filter list (or press Ctrl/Cmd + Enter). The stats line shows: items in, matches, filtered out, empty skipped, output character count, active mode, and any active modifiers.
- Read the output. Output joins matches with newlines regardless of input separator - that makes copying into spreadsheets or text editors predictable.
- Copy or download. Copy to clipboard uses the Clipboard API with an
execCommandfallback. Download as TXT savesfiltered-list.txtvia the Blob API.
Frequently Asked Questions
What’s the difference between filter modes?
Contains matches items with the pattern anywhere inside. Starts with matches only at the beginning. Ends with matches only at the end. Equals requires exact match. Regex uses regular expression patterns for advanced matching.
How does the invert filter work?
Invert filter (exclude matches) reverses the logic – it keeps items that DON’T match your pattern instead of items that do. This is useful for removing specific items from a list.
What is regex mode?
Regex (regular expression) mode allows advanced pattern matching with special characters like . (any character), * (zero or more), + (one or more), [abc] (character set), etc. It’s powerful but requires regex knowledge.
Can I filter multiple patterns at once?
Currently, the tool filters by one pattern at a time. To apply multiple filters, filter once, copy the result, then filter the result again with a new pattern. For OR-style “match A or B”, switch to regex mode and use A|B.
What does “Skip empty items” do?
When enabled, blank lines or empty items in your list are automatically removed from the output, regardless of your filter. Most users should keep this enabled to avoid blank lines in results. The stats line reports how many empties were skipped.
Why does the output use newlines even when my input used commas?
Output is normalised to one match per line because that’s the most generally useful format (copy-paste into a spreadsheet column, paste into another tool, eyeball-scan). The input separator selector tells the parser how to split your input; it doesn’t constrain the output. Copy the result and rejoin with your preferred delimiter if needed.
How large of a list can I filter?
Tens of thousands of items handle instantly. The filter is O(items × pattern-cost): a contains/starts/ends/equals check is O(pattern length); a regex check depends on the regex (linear for simple patterns, can be worse for catastrophic-backtracking patterns). 100k+ items still run in well under a second for typical patterns.
What happens if my regex is invalid?
The error gets caught and surfaced – the stats line turns red and the error toast shows the exact SyntaxError message from the JS engine (e.g. “Unterminated character class”). Fix the regex and click Filter again. The original input and other settings are preserved.
Is my data uploaded to a server?
No. The page is three static files (HTML, CSS, JS) and runs entirely in your browser via plain string operations. No fetch, no XHR, no analytics, no cookies. You can disconnect from the internet after the page loads and the tool still works.