Regulärer Ausdruck für die 7 Ziffern gefolgt von einem optionalen 3 Buchstaben

Ich bin neu in regulären Ausdrücken, und ich bin versucht zu validieren Erhalt zahlen in unserer Datenbank mit einem regulären Ausdruck.

Unserer Einnahmen kommen können in den folgenden Formaten:

  • 0123456 (Manditory sieben Ziffern, nicht mehr, nicht weniger)
  • 0126456a (Manditory sieben Ziffern mit einem Buchstaben (a-z)
  • 0126456ab (Manditory sieben Ziffern mit zwei Buchstaben von a-z)
  • 0126456abc (Manditory sieben Ziffern mit drei Buchstaben von a-z)

Habe ich versucht, mit einer Reihe von verschiedenen regex-Kombinationen, aber keiner scheint zu funktionieren. Jetzt habe ich:

(\d)(\d)(\d)(\d)(\d)(\d)(\d)([a-z])?([a-z])?([a-z])?

Aber das ist so für mehr als sieben Ziffern und ist damit mehr als 3 Buchstaben.

Hier ist mein VBA-Funktion in Access 2010, die überprüft, ob der Ausdruck:

Function ValidateReceiptNumber(ByVal sReceipt As String) As Boolean

    If (Len(sReceipt) = 0) Then
        ValidateReceiptNumber = False
        Exit Function
    End If

    Dim oRegularExpression     As RegExp

'   Sets the regular expression object
    Set oRegularExpression = New RegExp

    With oRegularExpression
'   Sets the regular expression pattern
        .Pattern = "(\d)(\d)(\d)(\d)(\d)(\d)(\d)([a-z])?([a-z])?([a-z])?"

'   Ignores case
        .IgnoreCase = True

'       Test Receipt string
        ValidateReceiptNumber = .Test(sReceipt)

    End With
End Function
InformationsquelleAutor Lil' Bits | 2013-02-09
Schreibe einen Kommentar