无法使用 Sublime Text 有选择地应用正则表达式的替换文本
Unable to selectively apply replacement text of regular expression using Sublime Text
上下文
我有一个非常冗长的文本文件,我正在尝试使用 Sublime 的正则表达式 find/replace 选项对其进行润色。我正在使用 Sublime Text 的 build 4113。我已经将文本文件的本质简化为这个可重现的示例来说明我的问题:
the quick
brown fox
jumps over
the lazy_dog
我想替换两列文本之间的白色space。 Sublime 正确地突出显示了这个后视的匹配项:(?<=[a-z]) *
请注意 * 量词后的尾随 space。
预期行为
Sublime 的“全部替换”功能在使用上述回顾时按预期工作。用单个 space 替换正则表达式的所有实例会产生以下预期结果:
the quick
brown fox
jumps over
the lazy_dog
如果我尝试使用“查找”和“替换”的组合来遍历匹配项,我希望正则表达式光标位置前进到每个实例并允许我有选择地应用替换。
意外行为
但是,当我尝试使用“查找”和“替换”有选择地应用替换时,Sublime 仅替换第一个实例,同时继续以黄色突出显示每个后续实例,这表明正则表达式引擎“看到”了匹配。
有人可以帮我填补我理解上的空白吗?如果这个问题已经得到回答,我们深表歉意。我花了几个小时搜索,但也许我没有使用合适的关键字。
好消息是你没疯,坏消息是这是 ST 中的一个错误。更好的消息是它已在 build 4114 中得到修复 - 我已经在 Linux.
中用你在 build 4115 上的示例自己验证了它
有关详细信息,请参阅问题跟踪器上的此错误:https://github.com/sublimehq/sublime_text/issues/2038
上下文
我有一个非常冗长的文本文件,我正在尝试使用 Sublime 的正则表达式 find/replace 选项对其进行润色。我正在使用 Sublime Text 的 build 4113。我已经将文本文件的本质简化为这个可重现的示例来说明我的问题:
the quick
brown fox
jumps over
the lazy_dog
我想替换两列文本之间的白色space。 Sublime 正确地突出显示了这个后视的匹配项:(?<=[a-z]) *
请注意 * 量词后的尾随 space。
预期行为
Sublime 的“全部替换”功能在使用上述回顾时按预期工作。用单个 space 替换正则表达式的所有实例会产生以下预期结果:
the quick
brown fox
jumps over
the lazy_dog
如果我尝试使用“查找”和“替换”的组合来遍历匹配项,我希望正则表达式光标位置前进到每个实例并允许我有选择地应用替换。
意外行为
但是,当我尝试使用“查找”和“替换”有选择地应用替换时,Sublime 仅替换第一个实例,同时继续以黄色突出显示每个后续实例,这表明正则表达式引擎“看到”了匹配。
有人可以帮我填补我理解上的空白吗?如果这个问题已经得到回答,我们深表歉意。我花了几个小时搜索,但也许我没有使用合适的关键字。
好消息是你没疯,坏消息是这是 ST 中的一个错误。更好的消息是它已在 build 4114 中得到修复 - 我已经在 Linux.
中用你在 build 4115 上的示例自己验证了它有关详细信息,请参阅问题跟踪器上的此错误:https://github.com/sublimehq/sublime_text/issues/2038