条件RegEx替换 - 如果找到引用,则写入其他内容

时间:2014-04-04 11:04:07

标签: regex replace conditional sublimetext

两个案例

1. Key<A, M> desc = newKey();
2. Property<B, N> type = newKey("type", B.bar);

RegExp并替换

find: (?:Key|Property)<(.*), (.*)> (.*) = newKey\((.*)\);
rep.: Foo<C$1, $2> $3 = pl.nP("$3", $2.class); // ($4)

结果

1. Foo<CA, M> desc = pl.nP("desc", M.class); //
2. Foo<CB, N> type = pl.nP("type", N.class); // ("type", B.bar)

问题:

现在我想避免第1行的空评论。

  

有没有办法写4美元及其周围的东西只有4美元   不是空的吗?

1 个答案:

答案 0 :(得分:1)

您可以使用其他正则表达式删除空注释。

修改

另一种解决方案是单独处理特殊情况(... = newKey\(\))。 如果重复键入的繁琐变得太大(例如,在处理多个条件时),也许你可以用一个简单的脚本自动完成这个过程。

据我所知,Sublime Text中的替换字段中没有任何“智能”;您所能做的就是根据自己的喜好组装捕获的作品。

昨天浏览了一些Google搜索结果时,我在Perl中发现了一篇关于条件模式的文章,但没有任何与手头问题有关的内容。

为了充分披露,我应该说我绝不是该领域的专家,所以我可能是错的。但是我对Python API有一些经验 崇高文本。如果在可用的大量扩展中不存在此功能,则可以自己实现此功能。

我很抱歉,如果这听起来像是一个非常冗长的'呃呃',但我会留意一般的解决方案。