Board logo

标题: [问题求助] 正则表达式在VBS中怎样匹配以指定字符串开头的行? [打印本页]

作者: shelluserwlb    时间: 2015-1-4 15:05     标题: 正则表达式在VBS中怎样匹配以指定字符串开头的行?

  1. Dim str,Rs,Match
  2. str = "a100_b100_a100_01" & vbCrLf & "b100_a100_b100_02" & _
  3. vbcrlf & "c100_03" & vbCrLf & "c200_a100_c100_04" & _
  4. vbCrLf & "a100_c200_05" & vbCrLf & "d100_06" & _
  5. vbCrLf & "a100_07"
  6. Set Rs = New RegExp
  7. Rs.Global = True
  8. Rs.IgnoreCase = True
  9. Rs.Pattern = "(a100).+"
  10. Set Match = Rs.Execute(str)
  11. For Each m In Match
  12.     MsgBox m.Value
  13. Next
复制代码
上面这段代码查找所有有"a_100"的字符行并显示。
现在我只想查找每行以"a_100"开头的行,该怎么改匹配模式?
我曾试过将匹配模式改为Rs.Pattern = "^(a100).+",但是好像不管用。
作者: yu2n    时间: 2015-1-4 20:35

... 肉眼观察没发现任何含 a_100 的字符。

猜测你可能是想在第7行下面插入:
  1. Rs.MultiLine = True
复制代码
来开启多行匹配模式。
作者: CrLf    时间: 2015-1-4 20:53

补充楼上,还要加上 ^ 限定匹配头部
  1. Rs.MultiLine = True
  2. Rs.Pattern = "^(a100).+"
复制代码

作者: shelluserwlb    时间: 2015-1-5 13:20

本帖最后由 shelluserwlb 于 2015-1-5 13:22 编辑

说错了,是“a100“, 谢谢各位朋友的回复,我试一下。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2