在 Notepad++ 混淆中使用 RegEx 提取文本

Extracting text with RegEx in Notepad++ confusion

所以我有大量文本需要从中提取一些文本。这是其中一些内容的一小段。

pool-4-thread-54]"Sheet1 :name=Wagenaar, Larry CSA Term (4-15-13ALT).doc; " :Error adding or updating document. 
pool-4-thread-56]"Sheet1 :name=Kelly Services - 2nd Amendment to CLSA (11-13-13ALT).doc; " :Error adding or updating document. 
pool-4-thread-38]"Sheet1 :name=New Zealand Pharmaceuticals CDA 072313.doc; " :Error adding or updating document. 

我正在使用以下 RegEx 来获得我想要的结果

(["'])(?:(?=(\?)).)*?

然后我研究了如何提取与模式匹配的文本,我读过的所有内容都说过在 Notepad++ 中使用查找和替换,并将 RegEx 替换为 /1 或 $1

这对我来说没有意义,因为这只是替换了模式找到的实际文本,所以我失去了我真正想要保留的内容。我是不是误解了我应该做什么?

所以假设我有这条线

pool-4-thread-54]"Sheet1 :name=Wagenaar, Larry CSA Term (4-15-13ALT).doc; " :Error adding or updating document. 

我使用 RegEx 模式进行查找并得到

的结果
"Sheet1 :name=Wagenaar, Larry CSA Term (4-15-13ALT).doc; " 

如果我将其替换为

/1

那一行就变成了

pool-4-thread-54] :Error adding or updating document. 

感谢任何帮助,谢谢

要删除周围的所有文字并只保留您需要的内容,请使用

^.*((["'])(?:(?!\2).)*?).*

并替换为 </code> 反向引用。见 <a href="https://regex101.com/r/wHGyPo/1/" rel="nofollow noreferrer">regex demo</a>.</p> <p><em>详情</em>:</p> <ul> <li><code>^ - 字符串开头

  • .* - 零个或多个字符,换行字符除外,尽可能多
  • ((["'])(?:(?!\2).)*?) - 第 1 组:将 "' 捕获到第 1 组,然后除换行符之外的任何零个或多个(但尽可能少)字符,每个都不能等于第 2 组中捕获的值(因此,“不是 '”或“不是 "”)
  • .* - 该行的其余部分。
  • 我必须添加 ^.*(匹配行的开头后跟除换行符以外的零个或多个字符),然后我将您的模式包含在另一个捕获组中(添加 (在前面和 ) 之后)以便我们稍后可以在替换模式中使用 </code> 反向引用引用此子匹配,然后添加 <code>.* 以匹配该行的其余部分。

    请注意,您的模式中的反向引用必须重新编号。

    如果您还需要删除换行符,请在我的正则表达式末尾添加 \R?(或 \R* 以匹配零个或多个,删除所有空行)。