0

I have a string like this:

Correct Strings

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

Invalid Strings:

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

I need to evaluate this string that has this format indefinitely, The regex evaluate the commas who are in series and are only integers.

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 回答