

(参考)指定された文字列を正規表現で検索します。  
<https://msdn.microsoft.com/ja-jp/library/cc392389.aspx>

[code]

    Function RegExpTest(patrn, strng)
        Dim regEx, Match, Matches          ' 変数を作成します。
        Set regEx = New RegExp             ' 正規表現を作成します。
        regEx.Pattern = patrn              ' パターンを設定します。
        regEx.IgnoreCase = True            ' 大文字と小文字を区別しないように設定します。
        regEx.Global = True                ' 文字列全体を検索するように設定します。
        Set Matches = regEx.Execute(strng) ' 検索を実行します。
        For Each Match in Matches          ' Matches コレクションに対して繰り返し処理を行います。
            RetStr = RetStr & "一致する文字列が見つかった位置は、"
            RetStr = RetStr & Match.FirstIndex & " です。一致した文字列は、"
            RetStr = RetStr & Match.Value & " です。" & vbCRLF
        Next
        RegExpTest = RetStr
    End Function
    '      012    34        567    89        012    34        567    89        0    12 
    mySTR="IS1" & vbCrLf & "is2" & vbCrLf & "IS3" & vbCrLf & "is4" & vbCrLf & "5" & vbCrLf
    msgbox(mySTR)
    msgbox(len(mySTR))
    MsgBox(RegExpTest("is.", mySTR))
    '????5を取り出す「改行の正規表現」の方法を教えて下さい。??????????????????????????????????????
    MsgBox(RegExpTest("is."& vbCrLf, mySTR))
    '---------------------------------------------------------------------------------------------
    'IS1
    'is2
    'IS3
    'is4
    '5
    '---------------------------------------------------------------------------------------------
    '23
    '---------------------------------------------------------------------------------------------
    '一致する文字列が見つかった位置は、0 です。一致した文字列は、IS1 です。
    '一致する文字列が見つかった位置は、5 です。一致した文字列は、is2 です。
    '一致する文字列が見つかった位置は、10 です。一致した文字列は、IS3 です。
    '一致する文字列が見つかった位置は、15 です。一致した文字列は、is4 です。
    
[/code]

①上記の関数は、改行に対応していますか？  
②splitを使う方法しかありませんか？  
よろしくお願いします。


CC BY-SA 4.0
2018-06-07T10:51:50.340
44595
2019-01-13T05:01:40.323
17199
question
正規表現 vbs
VBSの正規表現(改行あり)で,検索文字列の次の行を取り出す方法を教えて下さい。


> 検索文字列の次の行を取り出す方法を教えて下さい。

`Match.FirstIndex`、`Match.Value`を使われているようですが[`Match.Length`](https://msdn.microsoft.com/ja-
jp/library/cc392435.aspx)もあります。  
`Match.FirstIndex + Match.Length`が検索文字列の次の **文字** を指します。検索している正規表現パターンが`"is."&
vbCrLf`と改行で終わっているため、実質的に次の **行** を指すことになります。


CC BY-SA 4.0
2018-06-07T21:21:33.810
44604
2018-06-07T21:21:33.810
4236
44595
answer