根据this page,您可以使用perl兼容的正则表达式
:perldo s/pattern/insert/g
。
这很好用。
但是,如何在vim中使用交互式搜索并替换为PCRE语法?
由于这不适用于perldo
,我会搜索不同的解决方案。
答案 0 :(得分:1)
你可以得到的最接近的是:
select t.member, t.drug_id, t2.drug_id,
sum(datediff(day, (case when t.dos <= t2.dos then t2.dos else t.dos end),
(case when dateadd(day, t.days_supply, t.dos) <= dateadd(day, t2.days_supply, t2.dos)
then dateadd(day, t.days_supply, t.dos)
else dateadd(day, t2.days_supply, t2.dos)
end)
) as days_overlap
from table t join
table t2
on t.member = t2.member and t.drug_id < t2.drug_id and
t.dos between dateadd(day, -t.days_supply, t2.dos) and
dateadd(day, t2.days_supply, t2.dos)
group by t.member, t.drug_id, t2.drug_id;
答案 1 :(得分:0)
在您的示例中,s/pattern/insert/g
是perl命令,而不是使用perl兼容的正则表达式语法的Vim命令。
如果perl没有等效的Vim /c
标志,你需要找到一个替代方法,如...编写一个实际的perl脚本。
答案 2 :(得分:0)
我建议尝试eregex plugin。它将perl兼容的正则表达式映射到VIM正则表达式语法。