跳到主要内容
uencoder

Use regex lookbehind assertions

Lookbehind (?<=...) 和 (?<!...) assert 什么 precedes 当前位置. Supported 在现代 engines (ES2018+, Java,。NET, PCRE).

  1. 1

    Lookbehind asserts 该模式 precedes 当前位置. 正 (?<=...) requires 它, 负 (?<!...) forbids 它. Lookbehind 是零-宽度. Unlike lookahead, lookbehind 必须是 固定-长度在 一些 flavors (Java, PCRE 之前 10.0), 但变量-长度是 supported 在。NET, JavaScript (ES2018+), 和 PCRE 10.0+.

  2. 2
    正则表达式测试器 →

    Test lookbehind patterns. Replace (?<=\$)\d+ 到匹配 numbers 之后 dollar sign: "$100" matches "100". Use (?<!\d)\d+(?!\d) 到匹配 standalone numbers (不 adjacent 到其他 digits). Lookbehind checks 什么 precedes 无 consuming 它.

  3. 3
    正则表达式替换器 →

    Use lookbehind 在 replacements. 替换 (?<=\b\w)\w 具有 * 到 mask 所有但 第一 letter 的每个字: "hello world" → "h**** w****". lookbehind asserts 字字符 precedes, 所以第一 letter 是不 replaced.

常见问题

是 lookbehind supported 在所有 browsers?
Lookbehind 是 supported 在 ES2018+ (Chrome 62+, Firefox 78+, Safari 16.4+). 它是 不 supported 在 older Safari 和一些 regex flavors. 为最大值 compatibility, restructure 模式到 use lookahead instead, 或 use polyfill/preprocessing 方法.
什么是 变量-长度 lookbehind?
Lookbehind where 模式能够匹配 varying lengths: (?<=ab|abc)d matches d preceded 通过 "ab" 或 "abc". 此是 supported 在。NET, JavaScript (ES2018+), 和 PCRE 10.0+, 但不 在 Java 或 older PCRE. 为固定-长度-仅 flavors, use alternation 具有相同-长度 branches 或 restructure.

解决此任务的工作流

相关工具