使用正则表达式进行查找和替换不会在使用WebStorm

时间:2017-11-08 13:25:37

标签: regex string replace webstorm

我在多个文件中都有像i18n(....)这样的字符串,例如文件数大于300且出现大约9k。

所以我在webstrom中使用正则表达式替换它。

我的搜索关键字为i18n\((.*)?\)i18n\((.*?)\),替换值为i18LocaleTemp\[$1]

  

案例:i18n\((.*)?\)

如果在一行中出现单一的后遗症,它的效果很好:

<h6 class="dateTimeFilterTitle"> {{sel.i18N('abc.filter.days.label')}}</h6>

转到

<h6 class="dateTimeFilterTitle"> {{sel.i18LocaleTemp['abc.filter.days.label']}}</h6>

但是当密钥在单行中多次出现时,它会失败,输出如下所示:

<div class="thirdColumn">
    {{config.timeDiffHr}}&nbsp;{{::sel.i18N('xyz.filter.time.diff.hr.label')}}&nbsp;{{config.timeDiffMin}}&nbsp;{{::sel.i18N('xyz.filter.time.diff.min.label')}}
</div>

转到

<div class="thirdColumn">
    {{config.timeDiffHr}}&nbsp;{{::sel.i18LocaleTemp['acz.filter.time.diff.hr.label')}}&nbsp;{{config.timeDiffMin}}&nbsp;{{::sel.i18N('acz.filter.time.diff.min.label']}}
</div>

我希望如下:

<div class="thirdColumn">
    {{config.timeDiffHr}}&nbsp;{{::sel.i18LocaleTemp['acz.filter.time.diff.hr.label']}}&nbsp;{{config.timeDiffMin}}&nbsp;{{::sel.i18LocaleTemp['acz.filter.time.diff.min.label']}}
</div>
  

案例i18n\((.*)?\)i18n\((.*?)\)

类似于下面的字符串:

reject(i18n('xxx.errorcode.' + ((err.status) ? err.status : 500) + '.folder'))

转到:

reject(i18LocaleTemp['xxx.errorcode.' + ((err.status] ? err.status : 500) + '.folder'))

以上条件的概率我需要检查一对开/关支撑

  

我很困惑我需要选择哪个关键值以达到我的要求?或者还有其他解决方法吗?

0 个答案:

没有答案