[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 正则表达式在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).+",但是好像不管用。

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

猜测你可能是想在第7行下面插入:
  1. Rs.MultiLine = True
复制代码
来开启多行匹配模式。
1

评分人数

『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

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

评分人数

    • shelluserwlb: 感谢给帖子标题标注[已解决]字样技术 + 1

TOP

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

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

TOP

返回列表