引号之间匹配/不匹配,带有不可避免的引号和多行

Match / not between quotes, with escapable quotes & multi-line

本文关键字:不可避免 之间 不匹配      更新时间:2023-10-16

所以我试图在C++中拆分/,但这并不重要。

我有这个正则表达式模式:

/(?=(?:(?:\.|[^"'``\])*["'``](?:\.|[^"'``\])*['"``])*(?:\.|[^"'``\])*$)

它匹配不在'、"、"'之间的/,您可以转义引号。

可悲的是,我不知道如何使它多行。我尝试将.更改为[^]并删除$,但这不起作用。

这就是我想要实现的目标:

Inline code- 匹配

/一些"/"的东西。' '/' ' . . .' '/' ''
/'
/"/
">

你可以匹配你想要的字符串

(?:'[^'\]*(?:\[sS][^'\]*)*'|"[^\"]*(?:\[sS][^"\]*)*"|`[^\`]*(?:\[sS][^`\]*)*`|[^/])+

查看正则表达式演示

  • (?:- 非捕获组匹配的开始...
    • '[^'\]*(?:\[sS][^'\]*)*'- 单引号字符串文本(支持转义序列(
    • |- 或
    • "[^"]*(?:\[sS][^"\]*)*"- 双引号字符串文本(支持转义序列(
    • |- 或
    • `[^\`]*(?:\[sS][^`\]*)*`- 反引号引号字符串文本(支持转义序列(
    • |- 或
    • [^/]- 除/以外的字符
  • )+-...一次或多次。