【发布时间】:2016-06-17 18:54:14
【问题描述】:
我有以下场景
C************************************************* *** C %% 结束模块 %% :ALM_P800B_RUN P800B_PUMP_RUNNING C************************************************* ** C************************************************* *** C %% END MODULE %% :ALM_VALVE_OPEN OPENING_VALVE_001 C************************************************* ** C************************************************* *** C %% 结束模块 %% :ALM_SIGNAL_FAIL LOSS_OF_SIGNAL C************************************************* **我打算从这些行中删除description100B。
我使用以下正则表达式查找和替换字符串
查找: (^C\s%+\s\w[A-Z\s%]+:\w[A-Z_0-9]+)\s\w[A-Z_0-9]+
替换: \1.TAG
最终的结果应该是这样的
C************************************************* *** C %% 结束模块 %% :ALM_P800B_RUN C************************************************* ** C************************************************* *** C %% 结束模块 %% :ALM_VALVE_OPEN C************************************************* ** C************************************************* *** C %% 结束模块 %% :ALM_SIGNAL_FAIL C************************************************* **我想知道是否有更好的方法来做到这一点?
【问题讨论】:
-
这看起来很粗鲁,但是check here, ;)
-
甚至这个
[^*]\w+$- here -
为什么要涉及正则表达式?
-
因为在这些行之间有很多没有显示的文本,而且它们的描述到处都是。这就是为什么
-
我会使用空格而不是
\s(它也匹配换行符),而那些\w并没有做任何有用的事情。另外,您可能不需要那么具体:(^C %%.*) [A-Z_0-9]+。
标签: regex sublimetext3