Alternativer Regex für negatives Lookbehind in JavaScript
In JavaScript werden negative Lookbehind-Behauptungen nicht direkt unterstützt. Es gibt jedoch Möglichkeiten, eine ähnliche Funktionalität zu erreichen.
Betrachten Sie den folgenden regulären Ausdruck:
(?Dieser reguläre Ausdruck stimmt mit Zeichenfolgen überein, die mit .js enden außer filename.js. In Regex-Implementierungen, die Lookbehind unterstützen, würde dieser Ausdruck wie vorgesehen funktionieren.
Alternative mit negativem Lookahead
Da JavaScript kein Lookbehind hat, können wir negativen Lookahead verwenden stattdessen:
^(?:(?!filename\.js$).)*\.js$Dieser Ausdruck überprüft explizit jedes Zeichen der Zeichenfolge, um sicherzustellen, dass die negative Lookbehind-Behauptung vorliegt (?!filename\.js$) plus der verbleibende reguläre Ausdruck stimmen nicht überein. Wenn es nicht übereinstimmt, darf das Zeichen übereinstimmen.
Vereinfachte Version
Für JavaScript-Versionen vor ECMAScript 2018 kann die folgende vereinfachte Version verwendet werden:
^(?!.*filename\.js$).*\.js$Dieser Ausdruck bestätigt, dass die Zeichenfolge enthält nirgends filename.js und endet mit .js.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3