регулярное выражение javascript, чтобы соответствовать символу, если не в блоке кода уценки - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь выяснить, как сопоставить все символы ', которые не находятся между блоком кода уценки.Использование расширения VSCode regreplace

Кажется, VSCode использует регулярное выражение Javascript.

ex:

match this one '

```
don't match this
```

match this as well '

```
not this one '
```

yes to this one '

`not this ' one`

цель состоит в том, чтобы заменить соответствующие * char

На данный момент у меня есть это регулярное выражение:

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

, которое соответствует всем ' даже тем, которые находятся в блоке кода.

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете использовать это как последнее средство.
Он находит ', который предшествует любому четному набору разделителей кода `
, что означает, что он снаружи, а не внутри.

Я говорю в крайнем случае, потому что это неэффективный способ сделать это.
Но, это не должно быть слишком плохо, если количество блоков не так велико.

Найти:

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

Заменить:

Пример: https://regex101.com/r/gdkvdq/1

Версия для чтения:

 ' 
 (?=
      [^`]* 
      (?:
           ` [^`]* ` 
           [^`]* 
      )*
      $ 
 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...