javascript 如果不在降价代码块内,则正则表达式匹配字符

javascript regex to match a char if not inside a markdown code block

我正在尝试找出如何匹配不在降价代码块之间的所有字符 '。使用 VSCode 扩展 regreplace

VSCode 似乎使用 Javascript 正则表达式。

例如:

match this one '

```
don't match this
```

match this as well '

```
not this one '
```

yes to this one '

`not this ' one`

目标是用 char

替换匹配的

目前我有这个正则表达式:

(?:(?!`[.\n]*?'))(')[.\n]*?(?!`)

匹配所有 ' 甚至是代码块中的那些。

你可以把它作为最后的手段。
它找到一个 ' 在任何偶数组代码定界符之前
这意味着它在外面,而不是里面。

我说这是最后的手段,因为这是一种低效的方法。
但是,如果块的数量不是那么多,那应该不会太糟糕。

查找:

'(?=[^`]*(?:`[^`]*`[^`]*)*$)  

替换:

示例:https://regex101.com/r/gdkvdq/1

可读版本:

 ' 
 (?=
      [^`]* 
      (?:
           ` [^`]* ` 
           [^`]* 
      )*
      $ 
 )