У меня есть это регулярное выражение для сопоставления слов, блоков кода и вещей, заключенных в кавычки. Проблема в том, что это регулярное выражение включает форматирование блока кода и кавычки.
/(```[^```]*```)|("[^"]*")|[^" \n]+/g
У меня есть это регулярное выражение для сопоставления слов, блоков кода и вещей, заключенных в кавычки. Проблема в том, что это регулярное выражение включает форматирование блока кода и кавычки.
/(```[^```]*```)|("[^"]*")|[^" \n]+/g
Итак, я потратил несколько часов на изучение регулярных выражений и создал некоторый код регулярных выражений, который делает именно то, что мне нужно:
/(?:(?<=`{3})[a-z]*\n[\s\S]*?\n(?=`{3}))|(?:(?<=")[^"]*(?="))|[^" \n(`{3})]+/g
Это соответствует блокам кода, исключая уценку, строкам в кавычках, исключая кавычки, и отдельным словам.
[^```]*
то же самое, что иметь класс символов только с одной обратной кавычкой[^']*
(пришлось использовать простую кавычку во втором примере)… это не означает 3 обратные кавычки в строка. В дополнение к группам без захвата, как упоминает Оливер, вам, вероятно, нужен негативный прогноз. - person Stephen P   schedule 08.02.2020