Регулярное выражение Javascript не может правильно найти и заменить блок кода уценки ⇐ Javascript
Регулярное выражение Javascript не может правильно найти и заменить блок кода уценки
Я установил плагин mermaid для Gitbook через gitbook-plugin-mermaid-gb3, этот плагин может анализировать код через блок кода уценки разметки и переведите ее в файл svg, блок кода выглядит следующим образом:
```русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` Но когда я использовал его, я обнаружил, что какой-то код не работает, после проверки я обнаружил, что это ошибка внутри плагина.
Код взят из index.js и связанного с ним кода анализа, указанного ниже:
var mermaidRegex = /^```mermaid((.*[\r\n]+)+?)?```$/im; функцияprocessMermaidBlockList(страница) { вар совпадение; while ((match = mermaidRegex.exec(page.content))) { вар rawBlock = совпадение [0]; вар mermaidContent = match[1]; page.content = page.content.replace(rawBlock, '' + mermaidContent + ''); } возвратная страница; } Регулярное выражение: /^```mermaid((.*[\r\n]+)+?)?```$/im, но оно может найти только блок кода начинается с ```mermaid, если до или после него есть пробел, это не будет работать
То, что я ожидал, показано ниже
- допустимо ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` -- допустимо, между ``` и русалкой может быть пробел ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` -- допустимо, может быть пробел до или после ``` ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` --invalid, перед ``` не может быть дополнительных символов abc```русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` --invalid, перед ``` не может быть дополнительных символов abc ```русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` --invalid, после ``` не может быть дополнительных символов ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` абв Я изменил /^```mermaid((.*[\r\n]+)+?)?```$/im на /\s*`` `\s*mermaid((.*[\r\n]+)+?)?```$/gm и протестируйте его через https://regex101.com/r/CIrooL/ 1, вроде нормально, но внутри javascript не работает, не знаю почему.
// эта строка будет заблокирована с использованием обновленного регулярного выражения while ((match = mermaidRegex.exec(page.content))) { } Кто-нибудь может мне помочь, пожалуйста? Заранее спасибо!
Я установил плагин mermaid для Gitbook через gitbook-plugin-mermaid-gb3, этот плагин может анализировать код через блок кода уценки разметки и переведите ее в файл svg, блок кода выглядит следующим образом:
```русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` Но когда я использовал его, я обнаружил, что какой-то код не работает, после проверки я обнаружил, что это ошибка внутри плагина.
Код взят из index.js и связанного с ним кода анализа, указанного ниже:
var mermaidRegex = /^```mermaid((.*[\r\n]+)+?)?```$/im; функцияprocessMermaidBlockList(страница) { вар совпадение; while ((match = mermaidRegex.exec(page.content))) { вар rawBlock = совпадение [0]; вар mermaidContent = match[1]; page.content = page.content.replace(rawBlock, '' + mermaidContent + ''); } возвратная страница; } Регулярное выражение: /^```mermaid((.*[\r\n]+)+?)?```$/im, но оно может найти только блок кода начинается с ```mermaid, если до или после него есть пробел, это не будет работать
То, что я ожидал, показано ниже
- допустимо ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` -- допустимо, между ``` и русалкой может быть пробел ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` -- допустимо, может быть пробел до или после ``` ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` --invalid, перед ``` не может быть дополнительных символов abc```русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` --invalid, перед ``` не может быть дополнительных символов abc ```русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` --invalid, после ``` не может быть дополнительных символов ``` русалка график ТД; А --> Б; А --> С; Б --> Д; С --> Д; ``` абв Я изменил /^```mermaid((.*[\r\n]+)+?)?```$/im на /\s*`` `\s*mermaid((.*[\r\n]+)+?)?```$/gm и протестируйте его через https://regex101.com/r/CIrooL/ 1, вроде нормально, но внутри javascript не работает, не знаю почему.
// эта строка будет заблокирована с использованием обновленного регулярного выражения while ((match = mermaidRegex.exec(page.content))) { } Кто-нибудь может мне помочь, пожалуйста? Заранее спасибо!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему при загрузке уценки в Jupyter из файла отступ меньше, чем ячейка уценки?
Anonymous » » в форуме Python - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Блок кода работает нормально без метода и неправильно, пока блок кода находится в методе
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Регулярное выражение: заменить все, кроме соответствующего шаблона (java)
Anonymous » » в форуме JAVA - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-