搜索和替换中的正则表达式:避免固定长度的环视

Regex in search & replace: avoid fixed length of lookaround

在很长的语料库中,我想对某些地方进行一些修正 环境。但是,我在将正则表达式与文本一起使用时遇到问题 编辑。我切换到 gedit 以拥有一个支持正则表达式的编辑器 搜索和替换

至关重要的是,我只想在行以某个特定开头时进行更改 模式(\nm\mb)。问题是我想要的元素 replace (o' -> o'o) 不是从行首开始的固定长度 而且我不能在后视中包含正则表达式(后视失败)。

有什么方法可以在简单的文本编辑器中包含我要查找的内容 正则表达式?或者这已经是我必须学习如何编写脚本的步骤了,因为 例如,Python?

到目前为止,这就是正则表达式的样子。

(?<=\(nm|mb)).*o'(?=(q|w|r|t|z|p|s|d|f|g|h|j|k|l|x|c|v|b|n|m|a|i|u|e))

当然,我不能在不丢失内容的情况下在替换中应用 .*

.* 周围放置一个捕获组并在替换中放置一个反向引用。

查找:(?<=\(nm|mb))(.*)o'(?=(q|w|r|t|z|p|s|d|f|g|h|j|k|l|x|c|v|b|n|m|a|i|u|e))

替换:o'o