0

私はこのような文字列を持っています:

正しい文字列

Dim value As String = "45, 2111,56, 1, 9, 99, 62,"

無効な文字列:

Dim value As String = "10.01, 12,, . , , "

この形式の文字列を無期限に評価する必要があります。正規表現は、直列で整数のみのコンマを評価します。

4

2 に答える 2

4

これは機能するはずです:

^(\d+, ?)*\d*$

カンマと次の数字の間にスペースを入れて、カンマで区切られた数字のリストを作成できます。空のリスト(空の文字列)も許可されます。

于 2012-05-17T15:43:51.590 に答える
1

これを試してください:

Public Function test(ByVal test_strring$) As Boolean
        Try
            Dim pattern$ = "(?s)^(\d+\s*,\s*)+$"
            ' (?s)^(\d+\s*,\s*)+$
            ' 
            ' Match the remainder of the regex with the options: dot matches newline (s) «(?s)»
            ' Assert position at the beginning of the string «^»
            ' Match the regular expression below and capture its match into backreference number 1 «(\d+\s*,\s*)+»
            '    Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
            '    Note: You repeated the capturing group itself.  The group will capture only the last iteration.  Put a capturing group around the repeated group to capture all iterations. «+»
            '    Match a single digit 0..9 «\d+»
            '       Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
            '    Match a single character that is a “whitespace character” (spaces, tabs, and line breaks) «\s*»
            '       Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
            '    Match the character “,” literally «,»
            '    Match a single character that is a “whitespace character” (spaces, tabs, and line breaks) «\s*»
            '       Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
            ' Assert position at the end of the string (or before the line break at the end of the string, if any) «$»


            Return Regex.IsMatch(test_strring, pattern, RegexOptions.None)
        Catch ex As Exception
            MsgBox(ex.ToString)
            Return False
        End Try
    End Function
于 2012-05-17T15:53:57.057 に答える