Editor_FindReplace

搜索或替换一个字符串。你能直接用该内联函数或明确地发送 EE_FIND_REPLACE 消息。

HRESULT Editor_FindReplace( HWND hwnd, UINT64 nFlags, LPCWSTR pszFind, LPCWSTR pszReplace, UINT64* pnCount, UINT64* pnMatchedLines );

参数

hwnd

指定 EmEditor 视图或框架的窗口句柄。

nFlags

[in] 指定一个下列值的组合。

含义

FLAG_FIND_AROUND

移动到文本的开始/结束处。

FLAG_FIND_BOOKMARK

在有匹配的字符串的行上设置书签。

FLAG_FIND_CASE

区分大小写。

FLAG_FIND_COUNT

计算匹配字符串的出现次数。

FLAG_FIND_EMBEDDED_NL

匹配 CSV 文档中的嵌入式换行符,不匹配其他换行符。

FLAG_FIND_ESCAPE

使用转义序列。

FLAG_FIND_EXTRACT

把匹配的行提取到一个新的文档中。

FLAG_FIND_FUZZY

使用模糊匹配。

FLAG_FIND_NEXT

从光标处往下搜索字符串。如果没有设置该标志,则往上搜索字符串。

FLAG_FIND_NO_OVERLAP

查找下一个或上一个匹配项时,不匹配重叠字符串。

FLAG_FIND_NO_PROMPT

禁止显示对话框即使没有找到任何字符串。

FLAG_FIND_ONLY_WORD

匹配整个单词。

FLAG_FIND_OPEN_DOC

在同一个框架窗口中,搜索所有打开的文档。

FLAG_FIND_REG_EXP

使用正则表达式。

FLAG_FIND_REGEX_BOOST

把 Boost.Regex 作为正则表达式引擎。

FLAG_FIND_REGEX_ONIGMO

把 Onigmo 作为正则表达式引擎,Ruby 语法。

FLAG_FIND_REGEX_ONIGMO_PERL

使用 Onigmo 作为正则表达式引擎,Perl 语法。

FLAG_FIND_SAVE_HISTORY

为重复搜索保存搜索过的字符串。

FLAG_FIND_SELECT_ALL

选择所有匹配的字符串。

FLAG_FIND_SEPARATE_CRLF

区分 CR 和 LF 。

FLAG_FIND_SEL_ONLY

仅搜索选区。

FLAG_REPLACE_ALL

替换所有匹配结果。

FLAG_REPLACE_SEL_ONLY

当被用 FLAG_REPLACE_ALL 指定时,仅在选区中替换。

pszFind

[in] 指定要搜索的字符串。

pszReplace

[in] 指定要替换的字符串。如果不替换的话,这个值必须是 NULL 。

pnCount

[out] 指定指针指向接收匹配次数的值,当 nFlags 包括 FLAG_FIND_COUNT,FLAG_FIND_BOOKMARK,FLAG_FIND_SELECT_ALL,FLAG_FIND_EXTRACT 或 FLAG_FIND_FILTER。

pnMatchedLines

[out] 指定指针指向接收匹配行数的值当 nFlags 包括 FLAG_FIND_COUNT,FLAG_FIND_BOOKMARK,FLAG_FIND_SELECT_ALL,FLAG_FIND_EXTRACT 或 FLAG_FIND_FILTER。

返回值

如果找到搜索字符串,返回 S_OK。如果找不到则返回 S_FALSE。如果发生错误,返回值是负数。如果一个用户取消搜索,负数值包含 E_ABORT,如果发生严重错误,返回 E_FAIL。

版本

支持 Version 15.7 或之后的版本。