繁体   English   中英

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

[英]Notepad++ regex search and replace ignores my result groups

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

我有这种结构的线条:
\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

因为我不确定语法记事本++ 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

在正则表达式模式下尝试以下查找和替换:

Find:    ^\\\S+\s+(.*?)//(.*?)\\\\ %true$
Replace: ::$1//$2::[html]<p><span style\="font-size\: 14px;">$1//$2</span><br></p>{ %true

演示

您当前的模式不够具体,而且(.*)捕获组可能跨行匹配不正确,具体取决于所使用的正则表达式模式。

我无法用 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM