regex - 无法使用 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 仅替换第一个实例,即使继续以黄色突出显示每个后续实例,这表明正则表达式引擎“看到”匹配。
有人可以帮我填补我的理解空白吗?如果这个问题已经得到回答,我们深表歉意。我花了几个小时搜索,但也许我没有使用适当的关键字。
解决方案
好消息是你没疯,坏消息是这是 ST 中的一个错误。更好的消息是它已在 build 4114 中修复 - 我已经用您在 Linux 中 build 4115 上的示例验证了它。
有关更多信息,请参阅问题跟踪器上的此错误:https ://github.com/sublimehq/sublime_text/issues/2038
推荐阅读
- php - PHP - 自定义对象数组的顺序,即 C1、C2、C3 到 C2、C1、C3
- gams-math - 在 GAMS 中,如何编写变量函数?
- sql - Oracle to_date() 返回错误的日期 +2 天
- excel - Excel: How do I sort by the two digits after a dash?
- python-3.x - 打开压缩文件,三个管道(“|||”)后面的字符不可见
- python - IndexError:列表索引超出范围 - itens = [{}]
- java - Checking if a user input that should be an int is a string
- javascript - TypeError: Cannot read property "9" from undefined
- php - 从 PHP 5.3 应用程序调用 mysql 存储函数
- c++ - window doesnt show image SDL