私は正規表現を初めて使用し、データベース内のレシート番号を正規表現で検証しようとしています。
領収書は次の形式で提供されます。
- 0123456(必須の7桁、それ以上でもそれ以下でもない)
- 0126456a(1文字のazを含む必須の7桁の数字)
- 0126456ab(2文字のazを含む必須の7桁の数字)
- 0126456abc(3文字のazを含む必須の7桁の数字)
さまざまな正規表現の組み合わせを使用してみましたが、どれも機能しないようです。今私は持っています:
(\d)(\d)(\d)(\d)(\d)(\d)(\d)([a-z])?([a-z])?([a-z])?
しかし、これは7桁以上を許可し、3文字以上を許可します。
式を検証するAccess2010内のVBA関数は次のとおりです。
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