Text Position Finder

Find all match positions by index, line and column

Finding where a substring appears in a large block of text — and jumping straight to it — isn't something most editors make easy. Paste your content, type what you're looking for (plain text or a regex), and every occurrence is highlighted inline with its exact index, line, and column. Click any result to scroll it to the center, or go the other way: type a position (offset or line:column) and jump straight to that fragment. Useful when parsing log files or debugging offset-based protocols.

Text
Search string
Go to position

How to use

  1. 1Paste textAn HTML page, log file, JSON response — any text content.
  2. 2Search by text or regexType a substring, or switch to Regex to match a pattern (ERROR|WARN, \d{3}). Every match is highlighted in the preview; hover a match to see its offset and line:column.
  3. 3Jump to a resultClick any row in the results list — that match scrolls to the center of the preview and gets a focus ring.
  4. 4Or go to a positionType an offset (1234, 34-39) or line:column (42:13, 42:, 42:13-42:20) in "Go to position" to highlight and scroll straight to that fragment.

Examples

Find a tag in large HTML
search: class="price"
Find the needed class in the source — get the exact line and position without scrolling through a large file.
All occurrences of a string in a log
search: ERROR
Find all errors in a log file — every ERROR is highlighted; hover one to read its line and column.
Highlight every log level with regex
regex: ERROR|WARN|DEBUG
Switch on Regex mode and highlight all log levels at once across a large log.
Jump to a byte offset from a parser error
go to position: 2089
A JSON parser reports "position 2089" — type it in and jump straight to that character, with its line and column shown.
Delimiter position in CSV
search: ,"
Debug a CSV parser — find where the structure breaks by the delimiter position.
Line and column of a JSON parser error
search: unexpected token
Find the problematic location from a parser error — enter the fragment from the error message and get the line and column.

When to use for web scraping

In scraping, substring position is needed for offset-based processing: some data formats specify positions in bytes or characters, not through tags. Also useful when debugging regex — when a pattern doesn't match, finding the exact character position in the text helps understand why. The reverse direction is what makes this fast for logs and parser errors: a JSON parser says "position 2089", a stack trace says "line 42, column 13". Type either into "Go to position" and jump straight to the fragment — the tool shows both coordinate systems at once, so an offset becomes a line:column and back. Standard text editors don't show exact indices well. This tool returns character offset, line, and column for each occurrence, highlights them inline, and lets you jump in both directions.

FAQ

How is this different from search in an editor?
An editor shows where in the file. This tool highlights every match inline and returns exact character offsets — numeric positions from the start of the string. Useful for programmatic processing, not just visual search.
Can I search with a regular expression?
Yes — switch the search mode from Literal to Regex. Patterns use standard JavaScript regex (ERROR|WARN, \d{3}), combinable with "Ignore case". An invalid pattern shows an error instead of breaking the tool. For full pattern testing with capture groups, use the Regex Tester.
How do I jump to a specific position?
Use the "Go to position" field. It auto-detects the format: a plain number is a character offset (1234, or a range 34-39); anything with a colon is line:column (42:13, 42: for a whole line, or a range 42:13-42:20). The fragment is highlighted and scrolled to the center, and you get both the offset and line:column for it.
Why are matches shown in two colors?
Yellow marks your search matches (text or regex). Blue marks the fragment from "Go to position". They can appear together so you can see a search result and a target position in the same view.
Is search case-sensitive?
Yes by default, in both Literal and Regex modes. Turn on "Ignore case" to search case-insensitively. The search also normalizes invisible differences — non-breaking spaces and Unicode form (NFC) — so accented text pasted from different sources still matches.
Why would I need line and column while parsing?
Some parsers and formats (XML, JSON, CSV) report errors with line and column numbers. Knowing these coordinates, you can pinpoint the problematic location in the source data without reviewing the entire file manually. The tool converts between a character offset and line:column in both directions.
What happens with a very large text?
Above ~150k characters the inline highlighting is turned off (the preview shows plain text) so the browser stays responsive — but search, the position list, and "Go to position" keep working.

Related tools