AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1867601
Accepted
gws
gws
Asked: 2024-12-27 01:00:10 +0800 CST2024-12-27 01:00:10 +0800 CST 2024-12-27 01:00:10 +0800 CST

Notepad++ 通过禁用向后正则表达式搜索可以避免哪些“有时令人惊讶的结果”?

  • 772

默认情况下,在正则表达式模式下,文档中的向后搜索不起作用。Nppp 在对话框中解释说,由于不直观的行为,该功能已被禁用:

默认情况下,向后正则表达式搜索是被禁用的,因为可能会出现意外结果。

我们在这里谈论的是什么样的意外结果,以及它们为什么会出现?

正则表达式的手册页提示了测试字符串和正则表达式的问题的性质,它们会在前向和后向操作中产生不同数量的匹配。

对于喜欢冒险的人来说,对话框所引用的手册页提供了有关启用向后正则表达式搜索的说明,请参见此处。


据报告,自 v7.8.7 版本以来,向后正则表达式搜索已损坏和/或被禁用。

notepad++
  • 2 2 个回答
  • 53 Views

2 个回答

  • Voted
  1. Best Answer
    Destroy666
    2024-12-28T14:46:22+08:002024-12-28T14:46:22+08:00

    检查某个功能被删除/隐藏的原因的最佳方法是检查软件的存储库(如果有)。有一个拉取请求提供了部分原因:

    之前讨论过的完整故事是,从插入符号位置向后搜索的正则表达式会导致用户无法预料的匹配。

    我可以找到一个非常简单的例子,说明它与插入符号配合得不太好。使用以下文本:

    testexample
    testtestexampleexample
    

    如果您在常规模式下查找test.*?example并将光标放在任意位置,它总会找到最接近的正确匹配。例如,如果您将其放在此处:

    testexample
    test|testexampleexample
    

    它会testexample按预期找到相邻项。但是,如果您切换到后向模式并将光标放在此处:

    testexample
    testtestexample|example
    

    这没有多大意义,而且不一致地找到了第一行。


    为什么会这样?不知道,也没有时间去分析,但这肯定与大多数正则表达式引擎(包括 N++ 使用的 Boost.Regex)向前而不是向后工作有关,而 Notepad++ 使用了一些向后功能的变通方法来模拟在相反方向上查找匹配项。然而,他们无法为光标位置实现完全可靠的变通方法,因此决定默认禁用方向更改。

    • 1
  2. DrMoishe Pippik
    2024-12-27T02:36:29+08:002024-12-27T02:36:29+08:00

    可能的是,意外的结果可能是由于正则表达式可以搜索行或字符串中的第一个、后续的或最后一个字符或序列。

    这意味着如果你从末尾开始向后工作,它可能会指定字符的第二次出现,也可能意味着倒数第二次出现。这取决于正则表达式的实现,可能不是IOTTMCO。

    • 0

相关问题

  • 在 Notepad++“另存为...”对话框中保留当前文件类型/扩展名

  • 计算文本字符串中的逗号并添加新行

  • 删除信息

  • Notepad++ 删除直到冒号替换所有行

  • NotePad++ 用户定义语言不显示条件语句

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve