首页 > 解决方案 > 无法使用 Sublime Text 选择性地应用正则表达式的替换文本

问题描述

语境

我有一个非常长的文本文件,我正在尝试使用 Sublime 的正则表达式查找/替换选项来润色。我正在使用 Sublime Text 的 build 4113。我已将文本文件的本质简化为这个可重现的示例来说明我的问题:

the          quick           
brown        fox             
jumps        over            
the          lazy_dog        

我想替换两列文本之间的空格。Sublime 正确地使用此后向突出显示匹配项:(?<=[a-z]) * 请注意 * 量词后的尾随空格。

预期行为

Sublime 的“全部替换”功能在使用上述lookbehind 时按预期工作。用单个空格替换正则表达式的所有实例会产生以下预期结果:

the quick 
brown fox 
jumps over 
the lazy_dog 

如果我尝试使用“查找”和“替换”的组合来迭代匹配,我希望正则表达式光标位置前进到每个实例并允许我有选择地应用替换。

意外行为

但是,当我尝试使用“查找”和“替换”选择性地应用替换时,Sublime 仅替换第一个实例,即使继续以黄色突出显示每个后续实例,这表明正则表达式引擎“看到”匹配。

有人可以帮我填补我的理解空白吗?如果这个问题已经得到回答,我们深表歉意。我花了几个小时搜索,但也许我没有使用适当的关键字。

标签: regexsublimetext

解决方案


好消息是你没疯,坏消息是这是 ST 中的一个错误。更好的消息是它已在 build 4114 中修复 - 我已经用您在 Linux 中 build 4115 上的示例验证了它。

有关更多信息,请参阅问题跟踪器上的此错误:https ://github.com/sublimehq/sublime_text/issues/2038


推荐阅读