为什么 `f(?=\=)` 在 VSCode 中无效的正则表达式?
Why is `f(?=\=)` invailid regex in VSCode?
在 VSCode 中,如果我在正则表达式查找和替换中使用 f(?=\=)
,我会收到一条错误消息:
Invalid regular expression: /f(?=\=)/: Invalid escape
然而,如果我这样做 f(?==)
它工作正常。我没有看到第一个正则表达式有任何问题,它只是将文字 =
符号指定为正前瞻。为什么你不能逃避一个 =
标志?
在您的正则表达式中,(?=
开始正向前瞻,但您的第二个 =
是匹配的部分,而不是该特定语法的一部分。所以斜杠被解释为转义,转义的 =
符号无效。
在 VSCode 中,如果我在正则表达式查找和替换中使用 f(?=\=)
,我会收到一条错误消息:
Invalid regular expression: /f(?=\=)/: Invalid escape
然而,如果我这样做 f(?==)
它工作正常。我没有看到第一个正则表达式有任何问题,它只是将文字 =
符号指定为正前瞻。为什么你不能逃避一个 =
标志?
在您的正则表达式中,(?=
开始正向前瞻,但您的第二个 =
是匹配的部分,而不是该特定语法的一部分。所以斜杠被解释为转义,转义的 =
符号无效。