Notepad ++ регулярное выражение поиска и замены игнорирует мои группы результатов - PullRequest
0 голосов
/ 20 октября 2019

Мне нужно изменить несколько текстовых файлов с вопросами на формат, который использует онлайн-платформа обучения.

У меня есть строки с такой структурой:
\item Question in german.//Question in english.\\ %true
\item Second question in german.//Second question in english.\\ %false

Мне нужно изменить строку, чтобы она выглядела следующим образом:
::Question in german.//Question in english.::[html]<p><span style\="font-size\: 14px;">Question in german.//Question in english.</span><br></p>{ %true
::Second question in german.//Second question in english..::[html]<p><span style\="font-size\: 14px;">Second question in german.//Second question in english.</span><br></p>{ %false

Только текст «Вопрос на немецком языке .// Вопрос на английском». и anser '% true' изменяется (ответ может быть либо true, либо false).

Мне удалось найти нужную мне часть с помощью этого выражения регулярного выражения:
(\\item )(.*)(\\\\ %.*)

Я использовал это
::\2::[html]<p><span style\="font-size\: 14px;">\2</span><br></p>{ \3
в качестве оператора замены, но Notepad ++ результат:

 ::::[html]<p><span style="font-size: 14px;"></span><br></p>{ 

Я также пытался

:: $2 ::[html]<p><span style\="font-size\: 14px;"> $2 </span><br></p>{ $3

, потому что я 'я не уверен, что синтаксис notepad ++ v7.7 использует. Результат похож на

 ::  ::[html]<p><span style="font-size: 14px;">  </span><br></p>{ 

Понятия не имею, почему Notepad ++ игнорирует мои группы.

РЕШЕНИЕ

Я не смог решить проблему с Notepad ++. Вот решение, которое работает для меня:

Я использовал эту веб-страницу https://regex101.com/ с шаблоном для поиска:
^\\item\h+(\N*?)//(\N*)\\\\\h*(\S+)

и для замены
::$1//$2::[html]<p><span style\="font-size\: 14px;">$1//$2</span><br></p>{ $3

1 Ответ

0 голосов
/ 20 октября 2019

Я не смог решить проблему с Notepad ++. Вот решение, которое работает для меня:

Я использовал эту веб-страницу https://regex101.com/ с шаблоном для поиска:
^\\item\h+(\N*?)//(\N*)\\\\\h*(\S+)

и для замены
::$1//$2::[html]<p><span style\="font-size\: 14px;">$1//$2</span><br></p>{ $3

Вот ссылка на решение DEMO
Кредит идет в bobblebubble и TimBiegeleisen

...