如何在记事本++中复制标记的文本

我有一个HTML源文件的一部分,它包含我想使用Notepad ++的正则expression式function一次select和复制的string。

这里是文本源的一部分:

<option value="Performance" >Performance</option> <option value="Maintenance" >Maintenance</option> <option value="System Stability" >System Stability</option> 

我使用正则expression式"[0-9a-zA-Z ]*"search“值”值。 我也select记事本++search中的function突出显示/标记find的文本。 这工作正常,我现在想复制或剪切只有突出显示的文本剪贴板进一步处理。 但是我无法在Notepad ++中find这个function。 这是根本不可能的还是我太愚蠢?

试试这个:

首先,修复行结束问题:(Notepad ++不允许多行正则expression式)

search[扩展模式]: \r\n> (或者你自己的系统行结尾)

replace: >

然后

search[正则expression式模式]: <option[^>]+value="([^"]+)"[^>]*>.*

(如果你想要所有的value而不仅仅是选项,简单的删除领先的option

replace: \1

第二个正则expression式的解释:

 <option[^>]+ Find a < followed by "option" followed by at least one character which is not a > value=" Find the string value=" ([^"]+) Find one or more characters which are not a " and save them to group \1 "[^>]*>.* Find a " followed by zero or more non-'>' characters followed by a > followed by zero or more characters. 

是的,它正在用正则expression式parsingHTML – 这些警告适用 – 仔细检查输出。

自从记事本++ 5.9以来,他们添加了一项function“删除未标记的行”,可用于删除您不想要的所有内容,并replace每个值行上的其他文本。

  1. 使用“search” – >“查找” – >“标记”function标记要保留/复制的每一行,并记住在标记文本之前勾选“书签行”
  2. selectsearch – >书签 – >删除未标记的行
  3. 使用search – >查找 – >replace来replace您不想保留/复制的其他文本
  4. 保存剩余的文本或复制它。

您也可以使用search – >书签 – >复制书签行来做类似的事情

所以在技术上,你仍然不能复制标记的文本,但是你可以用标记的文本标记行,然后对加书签或未标记的行执行各种操作。

为了完整起见,我将这篇文章添加到Googlesearch结果中。

你实际上可以从正则expression式search中复制所有内容,而不是一步到位。

  1. 在search下使用标记并在查找内容中input正则expression式。
  2. select书签行,然后单击全部标记。
  3. 点击search – >书签 – >复制书签行。
  4. 粘贴到一个新的文件。
  5. 您可能需要删除不属于正则expression式的search和replace行中的一些不需要的文本。

在Notepad ++中这将是一个很棒的function。 我使用以下技术从文件中提取所有匹配:

 powershell select-string -Path input.txt -Pattern "[0-9a-zA-Z ]*" -AllMatches | % { $_.Matches } | select-object Value > output.txt 

如果你只想要一个sorting列表中的不同匹配项:

 powershell select-string -Path input.txt -Pattern "[0-9a-zA-Z ]" -AllMatches | % { $_.Matches } | select-object Value -unique | sort-object Value > output.txt 

不,从Notepad ++ 5.6.2开始,这似乎不可能。 尽pipe列select(Alt +select)是可能的,但显然没有实现多个select,因此也不被searchfunction支持。

我有同样的问题。 你可以在新选项卡中列出正则expression式匹配,PSPad编辑器中的新行中的每个匹配与Notepad ++非常相似。

按Ctrl + Fsearch,检查正则expression式opion,把正则expression式,并单击列表。

这是记事本不可能的,但是这是简单的解决scheme

您将需要免费的Expresso v3.1 http://www.ultrapico.com/ExpressoDownload.htm

我使用了另一个自由软件:Expresso by Ultrapico。

  1. 一旦安装进入标签“testing模式”。
  2. 将您的REGEX复制到“正则expression式”窗格中。
  3. 将要search的整个文本粘贴到Expresso的“示例文本”面板中,

  4. 按下“运行匹配”button。 右键单击“search结果窗格”和“导出到…”或“将匹配的文本复制到剪贴板”。

注意:原始作者是@Andreas Jansson,但它被隐藏在评论中,所以由于这个页面在Googlesearch中排名很高,所以我把它留给别人。