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

文書翻訳 文書翻訳
文書番号: 818802 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、正規表現の作成方法と、正規表現を使用して特定のパターンに一致する文字列があるかどうかを判定する方法について、手順を追って説明します。正規表現を使用すると、特定のパターンに対する文字列の解析やマッチングが容易になります。Microsoft VBScript Regular Expressions 5.5 ライブラリに含まれているオブジェクトを使用することで、特定のパターンと文字列を比較したり、ある文字列を別の文字列に置き換えたり、また書式が設定された文字列の一部分のみを取得したりすることができます。この資料では、パターンを構成して、同じパターンが複数回出現する文字列を解析する方法について説明します。



必要条件

必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および Service Pack は、次のとおりです。
  • Microsoft Visual Basic 6.0
この資料は、次のトピックについて詳しい知識のあるユーザーを対象としています。
  • Visual Basic 6.0
  • 正規表現の構文


正規表現を使用したパターン照合

Visual Basic 6.0 では、RegExp オブジェクトで正規表現を使用して、パターンのマッチングを行います。RegExp で利用できるプロパティには、以下のものがあります。これらのプロパティで比較する文字列を設定し、RegExp インスタンスに渡します。
  • Pattern : 検索する文字列の正規表現を設定します。
  • IgnoreCase : パターン検索で大文字と小文字を区別する必要があるかどうかを示すブール (Boolean) 値を設定します。
  • Global : 検索対象の文字列全体でパターン マッチングを行う必要があるのか、パターンに一致する最初の文字列のみを検索するのかを示す、ブール (Boolean) 値を設定します。または、値の取得も可能です。
RegExp オブジェクトでは、以下のメソッドを使用して、文字列が特定のパターンの正規表現に一致するかどうかを判定します。
  • Test : 指定した正規表現に一致する文字列があるかどうかを示すブール (Boolean) 値が返されます。
  • Execute : 指定した正規表現に一致した文字列ごとに、Match オブジェクトを含む MatchCollection オブジェクトが返されます。
正規表現で文字列の検索を行うには、次の手順を実行します。
  1. RegExp オブジェクトの Pattern メソッドを使用して、正規表現を設定します。
  2. パターン マッチングを行う文字列を取得します。
  3. RegExp オブジェクトの IgnoreCase プロパティを True に設定します。
  4. 手順 2. で取得した文字列を、RegExp オブジェクトの Execute メソッドの引数として渡します。
  5. Execute メソッドの戻り値を MatchCollection オブジェクトに代入します。

    MatchCollection オブジェクトには、一致した文字列に関する情報が格納されます。
: Test メソッドを使用して、特定の正規表現に一致する文字列が存在するかどうかを確認することもできます。

手順例

  1. Microsoft Visual Basic 6.0 を起動します。
  2. [ファイル] メニューの [新しいプロジェクト] をクリックします。
  3. [新しいプロジェクト] ダイアログ ボックスで [標準 EXE] をクリックし、[開く] をクリックします。

    デフォルトで Form1 が作成されます。
  4. [プロジェクト] メニューの [参照設定] をクリックします。
  5. [Microsoft VBScript Regular Expressions 5.5] をダブルクリックし、[OK] をクリックします。
  6. ツールボックスの [CommandButton] をダブルクリックします。

    デフォルトで Command1 がフォームに追加されます。
  7. [Command1] をダブルクリックして、コード ウィンドウを開きます。
  8. 次のコードを Command1_Click イベント ハンドラに貼り付けます。
    MsgBox(TestRegExp("is.", "IS1 is2 IS3 is4"))
    : この例では、「is.」というパターンが「IS1 is2 IS3 is4」という文字列内にあるかどうかが判定されます。特殊文字のピリオド (.) はワイルドカード文字として使用できるため、任意の 1 文字と一致し、検索パターンと一緒に表示されます。ピリオド (.) を 2 つ検索パターンに追加した場合は、任意の 2 文字が表示されます。ピリオド (.) を使用しない場合は、検索パターンのみが表示されます。
  9. 次の関数を Command1_Click イベント ハンドラの後に追加します。
    Function TestRegExp(myPattern As String, myString As String)
       'Create objects.
       Dim objRegExp As RegExp
       Dim objMatch As Match
       Dim colMatches   As MatchCollection
       Dim RetStr As String
       
       ' Create a regular expression object.
       Set objRegExp = New RegExp
    
       'Set the pattern by using the Pattern property.
       objRegExp.Pattern = myPattern
    
       ' Set Case Insensitivity.
       objRegExp.IgnoreCase = True
    
       'Set global applicability.
       objRegExp.Global = True
    
       'Test whether the String can be compared.
       If (objRegExp.Test(myString) = True) Then
    
       'Get the matches.
        Set colMatches = objRegExp.Execute(myString)   ' Execute search.
    
        For Each objMatch In colMatches   ' Iterate Matches collection.
          RetStr = RetStr & "Match found at position "
          RetStr = RetStr & objMatch.FirstIndex & ". Match Value is '"
          RetStr = RetStr & objMatch.Value & "'." & vbCrLf
        Next
       Else
        RetStr = "String Matching Failed"
       End If
       TestRegExp = RetStr
    End Function
  10. [実行] メニューの [開始] をクリックして、アプリケーションを実行します。
  11. [Command1] をクリックします。

    メッセージ ボックスが表示され、「IS1 is2 IS3 is4」という文字列内で、「is」が出現する箇所がすべて表示されます。

関連情報

関連情報については、次の MSDN の Web サイトを参照してください。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/jsgrpregexpsyntax.asp
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/reconIntroductionToRegularExpressions.asp

プロパティ

文書番号: 818802 - 最終更新日: 2007年3月20日 - リビジョン: 3.0
この資料は以下の製品について記述したものです。
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
キーワード:?
kbprogramming kbstring kbhowtomaster KB818802
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com