-1

正規表現を使用して、VBA でパターン マッチを実行しようとしています。正規表現ライブラリへの参照を追加し、次のコードをテストとして使用しています。

Sub testing()

Dim re
Dim val
Set re = New RegExp

re.Pattern = "[0-9]{5}"
re.IgnoreCase = True

val = Range("A8").Value

MsgBox val

MsgBox re.Test(val)

End Sub

問題は、次のようにフォーマットされた文字列をテストしているときです。

1234 565 4444543 12 33

{5} を使用すると「True」を受け取り、{6} を使用すると「False」を受け取ります。どうしてこれなの?

この場合、{5} と {6} の両方が "False" を返すべきではありませんか?

正規表現が空白で一致している場合、これを防ぐにはどうすればよいですか? 正確に 4 つの数字の後に正確に 1 つのスペースが続き、正確に 3 つの数字が続くなどと一致させたいとします。

ヘルプ!

4

1 に答える 1

-1

正規表現を固定する必要があります。

re.Pattern = "^[0-9]{5}$"

それ以外の場合は、入力のどこかにパターンが見つかった場合に一致します。^入力の先頭に一致し、入力$の末尾に一致します。

には 6 桁あるため、なぜあなたの入力で[0-9]{6}が返されるのかわかりません。False4444543

于 2013-05-13T23:12:43.077 に答える