VB.net 正则表达式 查找指定字符之间的字符串


查找(和)之间的字符串,不包括括号
        Dim reg As New Regex("(?i)(?<=\()[^\(]*(?=\))")
        Dim mc As MatchCollection = reg.Matches(Me.TextBox1.Text)
        For Each m As Match In mc
            MsgBox(m.Value)
        Next
查找a和c之间的字符串
        Dim reg As New Regex("(?i)(?<=a)[^a]*(?=c))")
        Dim mc As MatchCollection = reg.Matches(Me.TextBox1.Text)
        For Each m As Match In mc
            MsgBox(m.Value)
        Next

查找AA和BB之间的字符串
(?<=AA).*(?=BB)   ‘AA和BB之间不能包含特殊字符,是最开始的AA和最后的BB之间串

(?<=AA).*?(?=BB)   ‘AA和BB之间不能包含特殊字符,是最开始的AA和相邻的BB之间的字符串

AA([\S\s]*?)BB   ‘AA和BB之间可以包含特殊字符,

"(?<=《)([\S\s]*?)(?=》)"  书名号之间,不包括书名号

"https(.*?)pdf"  https 开头 pdf结尾的字符串, 距离pdf最近的https和pdf之间。
"https(*?)pdf"  https 开头 pdf结尾的字符串, 第一次出现https和第一次pdf之间, 这中间可能还含有https。

字符\和\之间的字符串
\\([\S\s]*?)\\

 Public Shared Function MidStrEx_New(ByVal sourse As String, ByVal startstr As String, ByVal endstr As String) As String
        Dim rg As New Regex("(?<=(" + startstr + "))[.\s\S]*?(?=(" + endstr + "))", RegexOptions.Multiline Or RegexOptions.Singleline)
        Return rg.Match(sourse).Value
    End Function



需要转义的字符

注释 $ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,那么 $ 还匹配 \n 或 \r 前面的位置。若要匹配 $ 字符本身,请使用 \$。

( ) 标记子表达式的开始和结束。可以捕获子表达式以供以后使用。若要匹配这两个字符,请使用 \( 和 \)。

* 零次或多次匹配前面的字符或子表达式。若要匹配 * 字符,请使用 \*。

+ 一次或多次匹配前面的字符或子表达式。若要匹配 + 字符,请使用 \+。

. 匹配除换行符 \n 之外的任何单个字符。若要匹配 .,请使用 \。 [ ] 标记中括号表达式的开始。若要匹配这些字符,请使用 \[ 和 \]。

? 零次或一次匹配前面的字符或子表达式,或指示“非贪心”限定符。若要匹配 ? 字符,请使用 \?。

\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,字符 n 匹配字符 n。\n 匹配换行符。序列 \\ 匹配 \,序列 \( 匹配 (。

/ 表示文本正则表达式的开始或结束。若要匹配 / 字符,请使用 \/。

^ 匹配输入字符串开始处的位置,但在中括号表达式中使用的情况除外,在那种情况下它对字符集求反。若要匹配 ^ 字符本身,请使用 \^。

{ } 标记限定符表达式的开始。若要匹配这些字符,请使用 \{ 和 \}。

| 指出在两个项之间进行选择。若要匹配 | ,请使用 \|



http://www.99mp4.net/

AutoCAD 与.Net Framework 及 Visual Studio的对应关系

欢迎关注微信公众账号ByCAD