Zum Inhalt springen
uencoder

Verwenden regex lookahead assertions

Lookahead (?=...) und (?!...) assert was follows (oder doesn't follow) der aktuell position ohne consuming Zeichen. Zero-Breite assertions.

  1. 1

    Lookahead asserts that a pattern follows the current position without consuming it. Positive lookahead (?=...) requires the pattern to match. Negative lookahead (?!...) requires it NOT to match. Lookahead is zero-width — it does not advance the position. This is useful for password validation and conditional matching.

  2. 2
    Regex-Tester →

    Test lookahead patterns. For password validation: (?=.*[A-Z])(?=.*[0-9]).{8,} requires at least one uppercase, one digit, and 8+ characters. The lookaheads check conditions at the same position, then .{8,} matches the full password.

  3. 3
    Regex-Ersetzung →

    Use lookahead in replacements. Replace \d(?=\d{3}) with , to add thousand separators: 1234567 → 1,234,567. The lookahead asserts three digits follow without consuming them, so the replacement applies at each correct position.

Häufige Fragen

What is a zero-width assertion?
A pattern that matches a position rather than consuming characters. Lookahead (?=...), word boundary \b, start ^, and end $ are zero-width. They assert a condition without advancing the match position. This allows checking multiple conditions at the same position, like password requirements.
Can lookahead contain capturing groups?
Yes. Groups inside lookahead are captured and can be referenced later. For example, (?=(\d+)) captures digits without consuming them, allowing overlapping matches. This is useful for finding all overlapping patterns that a normal match would skip.

Workflows, die diese Aufgabe lösen

Verwandte Tools