[PR]
2024年11月21日
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
VBで正規表現
2009年06月08日
VBやVBAで正規表現を行うのは、下記の通り。
Function 正規表現CK(STRSRC As String, LNGPTN As Long) As Boolean
'LNGPTNの設定値
'1=英字大文字
'2=英字子文字
'3=数値
'4=ひらがな
'5=全角カタカナ
'6=半角カタカナ
'7=特殊文字
'8=SQLServerの引数で良くない文字(SQL インジェクション簡易対策)
'1=英字大文字
'2=英字子文字
'3=数値
'4=ひらがな
'5=全角カタカナ
'6=半角カタカナ
'7=特殊文字
'8=SQLServerの引数で良くない文字(SQL インジェクション簡易対策)
'パターンの文字があった場合にTrueを返す
On Error GoTo ERR_SKP:
Dim OBJREG As Object
Dim STRPTN As String
Dim RET As Boolean
Dim OBJREG As Object
Dim STRPTN As String
Dim RET As Boolean
Set OBJREG = CreateObject("VBScript.RegExp")
OBJREG.IGNORECASE = False
Select Case LNGPTN
Case 1
STRPTN = "[A-Z]"
Case 2
STRPTN = "[a-z]"
Case 3
STRPTN = "[0-9]"
Case 4
STRPTN = "[ぁ-ん]"
Case 5
STRPTN = "[ァ-ン]"
Case 6
STRPTN = "[ァ-ン]"
Case 7
'アスキーコードの32~47、58~64、91~96、123~126
STRPTN = "( |!|""|#|\$|%|&|'|\(|\)|\*|\+|,|-|\.|/|:|;|<|=|>|\?|@|\[|\\|\]|\^|_|`|\{|\}|~|\|)"
Case 8
OBJREG.IGNORECASE = True
STRPTN = "(;|'|--|/\*|\*/|xp_|SELECT|UPDATE|INSERT|DELETE|TRUNCATE|ALTER|EXECUTE|EXEC|DROP|CREATE)"
End Select
Case 1
STRPTN = "[A-Z]"
Case 2
STRPTN = "[a-z]"
Case 3
STRPTN = "[0-9]"
Case 4
STRPTN = "[ぁ-ん]"
Case 5
STRPTN = "[ァ-ン]"
Case 6
STRPTN = "[ァ-ン]"
Case 7
'アスキーコードの32~47、58~64、91~96、123~126
STRPTN = "( |!|""|#|\$|%|&|'|\(|\)|\*|\+|,|-|\.|/|:|;|<|=|>|\?|@|\[|\\|\]|\^|_|`|\{|\}|~|\|)"
Case 8
OBJREG.IGNORECASE = True
STRPTN = "(;|'|--|/\*|\*/|xp_|SELECT|UPDATE|INSERT|DELETE|TRUNCATE|ALTER|EXECUTE|EXEC|DROP|CREATE)"
End Select
OBJREG.Pattern = STRPTN
RET = OBJREG.Test(STRSRC)
RET = OBJREG.Test(STRSRC)
If RET = True Then
' マッチした場合の処理
Else
' マッチしなかった場合の処理
End If
' マッチした場合の処理
Else
' マッチしなかった場合の処理
End If
' 戻り値をセットします。
正規表現CK = RET
Set OBJREG = Nothing
Exit Function
ERR_SKP:
If OBJREG Is Nothing Then
Else
Set OBJREG = Nothing
End If
正規表現CK = RET
Set OBJREG = Nothing
Exit Function
ERR_SKP:
If OBJREG Is Nothing Then
Else
Set OBJREG = Nothing
End If
End Function
PR
Comment