使用RegExp

时间:2016-12-19 07:42:30

标签: regex vbscript

我有一张包含单元格中给定数据的Excel表格。想要将字母编号(例如a,c)或b))转换为数字数字格式(例如,1,3)或2))

输入单元格数据

  

简介和基本措辞
  这里有更多行   a,c)步骤1和3
    - sub-ste p) 1 of 1.
    - 1的子步骤2   ...
  b)步骤2.
    - 2的子步骤1   d-g)步骤4和6
  h)第5步

注意: 在单元格中,给定格式的字符很少' p)'

输出单元数据

  

简介和基本措辞
  这里有更多行   1,3)步骤1和3
    - 子步骤)1。1     - 1的子步骤2   ...
  2)步骤2.
    - 2的子步骤1   4-7)步骤4和6
  8)第5步

我在RegExp下方使用以获得正确的字母编号匹配

(^|\n)((\w(?=\)|\,|\-)(\,|\-)){0,3}\w?\)) 

要将其替换为数字编号格式,我使用下面的代码

Set colMataches = RE.Execute(strRegExp)  
For Each match In colMataches
    WScript.Echo "Found:"&match.Value
    Dim mt : mt = match.Value       'Output result: a,c), b)etc.
    Select Case mt
        ...
        Case "b)"
            sProc = RE.Replace(strRegExp, 2)
        ...
        Case Else
            WScript.Echo "Not Found"            
    End Select  

根据我的理解:Replace(expression , find , replacewith[ , start[ , count[ , compare]]]) 其中查找是您要替换的子字符串& replacewith 是您要替换的子字符串。
当我们试图找到特定值的全局匹配时,这通常很有用。想要使用单一&和全局替换' ' 等非字符。具体的值,如字母(' b')或数字(' 1')或除字母数字以外的任何其他内容(' @')。
但是我没有通过使用 Select Case 语句替换(a-> 1,b-> 2,c-> 3,d-> 4等)。有没有更好的方法来进行适当的替换?

0 个答案:

没有答案