找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18515|回复: 3

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

[复制链接]
发表于 2015-1-4 15:05:24 | 显示全部楼层 |阅读模式
  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).+",但是好像不管用。
发表于 2015-1-4 20:35:36 | 显示全部楼层
... 肉眼观察没发现任何含 a_100 的字符。

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

评分

参与人数 1技术 +1 收起 理由
shelluserwlb + 1 乐于助人

查看全部评分

发表于 2015-1-4 20:53:57 | 显示全部楼层
补充楼上,还要加上 ^ 限定匹配头部
  1. Rs.MultiLine = True
  2. Rs.Pattern = "^(a100).+"
复制代码

评分

参与人数 1技术 +1 收起 理由
shelluserwlb + 1 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2015-1-5 13:20:10 | 显示全部楼层
本帖最后由 shelluserwlb 于 2015-1-5 13:22 编辑

说错了,是“a100“, 谢谢各位朋友的回复,我试一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 13:10 , Processed in 0.020412 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表