Regex 升华文本:替换为固定宽度字段(使用正则表达式)
有没有办法将通过正则表达式找到的表达式(包含多个字段的行)替换为升华文本中固定宽度格式的字段?例如,我有几行文本,如:Regex 升华文本:替换为固定宽度字段(使用正则表达式),regex,replace,sublimetext3,Regex,Replace,Sublimetext3,有没有办法将通过正则表达式找到的表达式(包含多个字段的行)替换为升华文本中固定宽度格式的字段?例如,我有几行文本,如: CS 210 Data Structures Laboratory (0-0-3-3) CS 221 Digital Design (3-0-0-6) CS 241 System Software Laboratory (0-0-
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:学分制)在替换表达式中,能够为每个捕获组设置固定宽度将解决此问题
\s{2,}
查找两个以上的连续空格,并用其他字段分隔符替换它。i、 e.管道(|)你能不能改变字段的顺序,让课程名称成为最后一个字段?示例:
cs210(0-0-3-3)数据结构实验室
@sergioFC嗯,你就在这里。。但这只适用于这个特定的例子。可能会有更多长度可变的列。无论如何,这主意不错:)我认为这不能只用正则表达式