Sublime Text:用固定宽度字段替换(使用正则表达式)

时间:2016-11-25 18:40:02

标签: regex replace sublimetext3

有没有办法替换通过正则表达式找到的表达式(包含多个字段的行),在崇高文本中使用固定宽度格式的字段?

例如,我有几行文字,如:

Dim rSerie as Range
Set rSerie = Range("='" & _
                        shInfo.Name & "'!R" & RowCount - UBound(tests) - 1 _ 
                        & "C" & CInt(4 * (col + 1) - 2) & ":R" & RowCount - 1  _
                        & "C" & CInt(4 * (col + 1) - 2)))

With ....
    dMinValue = Application.WorksheetFunction.Min(rSerie)
    ....
End with

我需要通过以下方式替换它们:

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)

($ 1:课程编号,$ 2:课程名称,$ 3:学分制)
在替换表达式中,能够为每个捕获组设置固定宽度将解决问题。

1 个答案:

答案 0 :(得分:0)

  1. 用正则表达式 \s{2,} 找到两个以上的连续空格,并用其他字段分隔符替换它。即管道(|)
  2. 现在您用管道分隔了每个字段,这很容易管理。