返回列表 发帖

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

Dim str,Rs,Match
str = "a100_b100_a100_01" & vbCrLf & "b100_a100_b100_02" & _
vbcrlf & "c100_03" & vbCrLf & "c200_a100_c100_04" & _
vbCrLf & "a100_c200_05" & vbCrLf & "d100_06" & _
vbCrLf & "a100_07"
Set Rs = New RegExp
Rs.Global = True
Rs.IgnoreCase = True
Rs.Pattern = "(a100).+"
Set Match = Rs.Execute(str)
For Each m In Match
    MsgBox m.Value
Next COPY
上面这段代码查找所有有"a_100"的字符行并显示。
现在我只想查找每行以"a_100"开头的行,该怎么改匹配模式?
我曾试过将匹配模式改为Rs.Pattern = "^(a100).+",但是好像不管用。

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

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

TOP

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

评分人数

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

TOP

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

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

评分人数

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

TOP

返回列表