新增正则表达式引擎

除了之前默认的 Boost.Regex 正则表达式引擎之外,你还能把 Onigmo 选择为正则表达式引擎。 如果你把 Onigmo 选为正则表达式引擎,你能用更多字符类型,例如 \p{Han}\p{Hangul}\p{Hebrew}等。要查找更多有关 Onigmo 正则表达式语法,请查看 https://github.com/k-takata/Onigmo/blob/master/doc/RE 以及 Unicode 属性 https://github.com/k-takata/Onigmo/blob/master/doc/UnicodeProps.txt

测试结果

查找替换,以及筛选任务上有一些正则表达式用 Onigmo Boost.Regex 快很多。另外一些正则表达式 用 Boost.Regex 比较快。由于现在还在开发阶段,下面的测试结果以后也许会改变。

表达式Boost.RegexOnigmo
正向后行 (positive lookbehind)(?<=a)b10.23 秒3.94 秒
负向后行 (negative lookbehind)(?14.77 秒4.01 秒
正向先行 (positive lookahead)a(?=b)4.02 秒4.04 秒
负向先行 (negative lookahead)a(?!b)8.48 秒4.23 秒
字符范围[a-c]14.08 秒5.73 秒
选择内容john|jack|james3.55 秒3.80 秒
行首^”a3.50 秒3.61 秒


* 筛选,不区分大小写,线程数 4,340 MB,1.92 百万行文件
Windows 10 (64-bit) Core i7-4790 16GB RAM

区别 CR 和 LF

这个版本让你能分开搜索并替换 CR 和 LF。

在禁用区别 CR 和 LF 选项时,如果你试着搜索包含 \r (CR) 的字符串,会出现“搜索字符串包含 CR。你想要启用区别 CR 和 LF 选项吗?”提示消息。

其他新功能

新增功能

  • 如果一个文档的最后一行是空的,正则表达式不再匹配最后一行。

新增选项

  • 添加了正则表达式引擎下列列表框到自定义对话框中的搜索选项卡上。
  • 添加了区别 CR 和 LF 命令到查找/替换/在文件中查找/在文件中替换对话框中查找下拉列表框旁「>」按钮被点击所弹出的菜单上。
  • 添加了区别 CR 和 LF 按钮到查找工具栏。
  • 添加了显示启动窗口当在新文档中按向下键时复选框到自定义启动窗口对话框中。

插件新增功能

  • 添加了全部折叠以及全部展开命令到项目插件符号列表中的上下文菜单上。

插件 API 新增功能

  • 添加了 EE_FIND_REPLACE 消息。
  • 添加了 Editor_FindReplaceEditor_FindInFiles,和 Editor_ReplaceInFiles 内联函数。
  • 添加了 FIND_REPLACE_INFOGREP_INFO_EXMATCH_REGEX_INFO_EX,和 FIND_REGEX_INFO_EX 结构。

宏的新增功能

  • 添加了 eeFindMatchDotNL 标志到 nFlags 参数,还有 eeExFindRegexBoosteeExFindRegexOnigmoeeExFindSeparateCRLF 标志被添加到 Selection 对象的 Find 方法和 Replace 方法的 nExFlags 参数中。