クイックスタート
チュートリアル
ツールと言語
リファレンス
書籍レビュー
正規表現ツール
grep
PowerGREP
RegexBuddy
RegexMagic
汎用アプリケーション
EditPad Lite
EditPad Pro
言語とライブラリ
Boost
Delphi
GNU (Linux)
Groovy
Java
JavaScript
.NET
PCRE (C/C++)
PCRE2 (C/C++)
Perl
PHP
POSIX
PowerShell
Python
R
Ruby
std::regex
Tcl
VBScript
Visual Basic 6
wxWidgets
XML Schema
Xojo
XQuery と XPath
XRegExp
データベース
MySQL
Oracle
PostgreSQL
このサイトの詳細
はじめに
正規表現クイックスタート
正規表現チュートリアル
置換文字列チュートリアル
アプリケーションと言語
正規表現の例
正規表現リファレンス
置換文字列リファレンス
書籍レビュー
印刷可能な PDF
このサイトについて
RSS フィードとブログ
RegexBuddy—The best regex editor and tester for VB 6 developers!

Visual Basic で正規表現を使用する方法

優れた.NET の正規表現サポートにアクセスできるVisual Basic.NETとは異なり、従来の Visual Basic 6 には正規表現のサポートが付属していません。ただし、VB6 では、ActiveX および COM ライブラリによって提供される機能を非常に簡単に使用できます。

そのようなライブラリの 1 つは、Microsoft のVBScriptスクリプト ライブラリです。これは、バージョン 5.5 以降で優れた正規表現機能を備えています。JavaScriptで使用されている正規表現フレーバーを実装しています。このライブラリは、Internet Explorer 5.5 以降の一部です。Windows XP、Vista、7、8、8.1、または 10 を実行しているすべてのコンピューター、およびユーザーが IE 5.5 以降にアップグレードした場合の以前のバージョンの Windows で使用できます。これには、インターネットへの接続に使用されるほぼすべての Windows PC が含まれます。

Internet Explorer 5.5 は、Web 標準ではあまり高いスコアを獲得していません。JavaScript の正規表現の実装と実際の標準の間には、かなりの違いがあります。幸いなことに、ほとんどはあなたに影響を与える可能性のないコーナーケースです。IE の最新バージョンでは、Web ページを quirks モードでレンダリングする際に、依然として IE 5.5 の実装が使用されます。標準モードでは、IE の最新バージョンは JavaScript 標準に非常に厳密に従います。VBScript の正規表現も、IE の最新バージョンがインストールされている場合でも、IE 5.5 の実装を使用しています。

Visual Basic アプリケーションでこのライブラリを使用するには、VB IDE のメニューでプロジェクト|参照を選択します。リストを下にスクロールして、「Microsoft VBScript Regular Expressions 5.5」項目を見つけます。「Microsoft VBScript Regular Expressions 1.0」項目のすぐ下にあります。1.0 バージョンではなく、必ず 5.5 バージョンにチェックマークを付けてください。1.0 バージョンは、下位互換性のためにのみ提供されています. その機能は満足のいくものではありません.

参照を追加した後、ライブラリが提供するクラスとクラスメンバーを確認できます。メニューで表示|オブジェクトブラウザを選択します。オブジェクトブラウザで、左上隅のドロップダウンリストから「VBScript_RegExp_55」ライブラリを選択します。詳細については、この Web サイトのVBScript 正規表現リファレンスを参照してください。チュートリアルで JavaScript の正規表現フレーバーについて述べたことは、VBScript のフレーバーにも当てはまります。唯一の例外は、置換テキストにおける \xFF と \uFFFF の文字エスケープサポートです。JavaScript はこれらを文字列リテラルでサポートしますが、Visual Basic はサポートしません。

VB6 と VBScript の唯一の違いは、Dimステートメントを使用して、オブジェクトを作成する前に宣言する必要があることです。完全なコードスニペットを次に示します。VBScript ページの 2 つのコードスニペットをまとめて、3 つのDimステートメントを追加したものです。

'Prepare a regular expression object
Dim myRegExp As RegExp
Dim myMatches As MatchCollection
Dim myMatch As Match
Set myRegExp = New RegExp
myRegExp.IgnoreCase = True
myRegExp.Global = True
myRegExp.Pattern = "regex"
Set myMatches = myRegExp.Execute(subjectString)
For Each myMatch in myMatches
  MsgBox(myMatch.Value)
Next

| クイックスタート | チュートリアル | ツールと言語 |  | リファレンス | 書籍レビュー |

| grep | PowerGREP | RegexBuddy | RegexMagic |

| EditPad Lite | EditPad Pro |

| Boost | Delphi | GNU (Linux) | Groovy | Java | JavaScript | .NET | PCRE (C/C++) | PCRE2 (C/C++) | Perl | PHP | POSIX | PowerShell | Python | R | Ruby | std::regex | Tcl | VBScript | Visual Basic 6 | wxWidgets | XML Schema | Xojo | XQuery & XPath | XRegExp |

| MySQL | Oracle | PostgreSQL |