当前位置 : 首页 » 互动问答 » 正文

如何在notepad ++中复制标记文本

分类 : 互动问答 | 发布时间 : 2010-02-20 03:21:54 | 评论 : 8 | 浏览 : 92031 | 喜欢 : 46

我有一部分HTML源文件包含我想要使用Notepad ++的正则表达式功能一次选择和复制的字符串。

这是文本源的一部分:

 <option value =“Performance”
>效果</选项>
<option value =“维护”
>维护</选项>
<option value =“系统稳定性”
>系统稳定性</ option>

我正在使用正则表达式“[0-9a-zA-Z] *”来搜索“值”值。我还在Notepad ++搜索中选择了该功能,以突出显示/标记找到的文本。这工作正常我现在想要将突出显示的文本复制或剪切到剪贴板以进行进一步处理。但是我无法在Notepad ++中找到这个功能。这根本不可能还是我太笨了?

回答(8)

  • 1楼
  • 从Notepad ++ 5.9开始,他们为“删除未标记的行”添加了一个功能,可用于删除您不想要的所有内容以及一些搜索并替换每个值行上的其他文本。

    1. 使用搜索 - - >查找 - >标记功能以标记要保留/复制的每一行,并记住在标记文本之前勾选“书签行”
    2. 选择搜索 - >书签 - >删除未标记的行
    3. 使用搜索 - >查找 - >替换以替换您不想保留/复制的其他文本
    4. 保存剩余文本或复制它。

    您也可以使用搜索 - >书签 - 做类似的事情 - - >复制书签行

    从技术上讲,您仍然无法复制标记文本,但您可以为带有标记文本的行添加书签,然后对带书签或未标记的行执行各种操作。

  • 2楼
  • 试试这个:

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

    搜索[扩展模式]: \r\n>(或您自己系统的行结尾)

    Replace: >

    then

    搜索[正则表达式模式]: <option [^>] + value =“([^”] +)“[^>] *>。*

    (如果你想要所有出现的value而不仅仅是选项,简单地删除前导option)

    Replace: \1

    第二个的解释正则表达式:

     <option [^>] +找到<后跟“选项”后跟
                     至少一个不是>的字符
    
    value =“查找字​​符串值=”
    
    ([^“] +)找到一个或多个不是”并保存它们的字符
                     分组\ 1
    
    “[^>] *>。*找到”后跟零个或多个非''>'字符
                     后跟一个>后跟零个或多个字符。
    

    是的,它用正则表达式解析HTML - 这些警告 apply - 仔细检查输出。

  • 3楼
  • 我添加此内容是为了完整性,因为这篇文章在Google搜索结果中很高。

    您实际上可以从正则表达式搜索中复制所有内容,而不是一步到位。

    1. 使用“搜索”下的“标记”并在“查找内容”中输入正则表达式。
    2. 选择书签行,然后单击全部标记。
    3. 单击搜索 - >书签 - >复制书签行。
    4. 粘贴到新文档。
    5. 您可能需要删除行中的一些不需要的文本。不是搜索和替换正则表达式的一部分。
  • 4楼
  • 在Notepad ++中有一个很棒的功能。我使用以下技术从文件中提取所有匹配项:

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

    如果您只想要排序列表中的不同匹配项:

     powershell
    select-string -Path input.txt -Pattern“[0-9a-zA-Z]”-AllMatches | %{$ _。匹配} | select-object Value -unique | sort-object Value> output.txt
  • 5楼
  • 这类似于 https://superuser.com/questions/477628/export-all-regular-expression-matches-in-textpad-or-notepad-as-a-list .

    我希望你在尝试提取:
    “性能”
    “维护”
    “系统稳定性”

    这是方法 - 步骤1/3:打开搜索 - >查找 - >替换选项卡,选择正则表达式单选按钮。输入查找内容:(\“[a-zA-Z0-9 \ s] + \”)  在替换为:\ n \ 1并单击替换所有按钮。 Before Clicking Replace All

    步骤2/3:在第一步之后,您的关键字将在下一行中。(如下图所示)。现在转到Mark选项卡并在Find what:Field中输入相同的正则表达式。 在书签线上放置复选标记。然后单击全部标记。 Bookmark the lines

    步骤3/3:转到搜索 - >书签 - >删除未标记的行。Remove Unmarked lines

    所以你得到的最终结果如下Final Result

  • 6楼
  • 不,从Notepad ++ 5.6.2开始,这似乎是不可能的。虽然列选择(Alt + Selection)是可能的,但显然没有实现多个选择,因此搜索功能也不支持。

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

    按住Ctrl + F进行搜索,检查regexp opion,放置正则表达式并单击列表。

  • 8楼
  • 记事本是不可能的,但是这里很容易解决方案:

    你将需要免费软件Expresso v3.1 http://www.ultrapico.com/ExpressoDownload.htm

    我使用了另一块免费软件:Expresso by Ultrapico。

    1. 安装完成后,进入“测试模式”选项卡。
    2. 将REGEX复制到“正则表达式”窗格。
    3. 将要搜索的整个文本粘贴到Expresso的“示例文本”窗格中,

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

    N.B.:原作者 @Andreas Jansson但它隐藏在注释中,因此该页面很高在谷歌搜索中排名我把它留给其他人。

相关阅读:

How to do case insensitive search in Vim

What is the best regular expression to check if a string is a valid URL?

Check whether a string matches a regex in JS

deny direct access to a folder and file by htaccess

Match the path of a URL, minus the filename extension

How to validate an email address using a regular expression?

Convert tabs to spaces in Notepad++

Regular Expression to get a string between two strings in Javascript

Regex match everything after question mark?

use regular expression in if-condition in bash