Notepad ++正则表达式搜索和替换会忽略我的结果组

时间:2019-10-20 08:54:49

标签: regex notepad++

我需要将几个有问题的文本文件更改为在线学习平台使用的格式。

我有这样的行:
\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

仅显示文本“德语问题。//英语问题”。并且答案'%true'发生变化(答案可以为是或否)。

我可以使用此正则表达式表达式找到想要的部分:
(\\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 :(得分:0)

我无法使用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的链接
值得称赞的是泡泡龙和蒂姆·比格莱森