【发布时间】:2017-04-10 04:44:48
【问题描述】:
有没有办法将通过正则表达式找到的表达式(包含多个字段的行)替换为 sublime 文本中固定宽度格式的字段?
例如,我有几行文本,例如:CS 210 Data Structures Laboratory (0-0-3-3)
CS 221 Digital Design (3-0-0-6)
CS 241 System Software Laboratory (0-0-3-3)
CS 203 Formal Languages and Automata Theory (3-0-0-6)
我需要用这样的东西替换它们:
CS 210 Data Structures Laboratory (0-0-3-3)
CS 221 Digital Design (3-0-0-6)
CS 241 System Software Laboratory (0-0-3-3)
CS 203 Formal Languages and Automata Theory (3-0-0-6)
每行中的字段可以通过正则搜索分别得到:
([A-Z]{2} +[\d]{3}) +((?: *\-* *\w+)+) +([\(\-\d\)]{9})
($1: 课程编号, $2: 课程名称, $3: 学分制)
在替换表达式中,能够为每个捕获组设置固定宽度即可解决问题。
【问题讨论】:
-
你不能只是改变字段的顺序,所以课程名称是最后一个字段吗?示例:
CS 210 (0-0-3-3) Data Structures Laboratory -
@sergioFC 好吧,你就在这里.. 但这仅在这个特定示例中有效。可能会有更多可变长度的列。无论如何,好主意.. :)
-
我认为这不能只使用正则表达式来完成
标签: regex replace sublimetext3