1つの正規表現オブジェクト内で複数のパターンを使用するにはどうすればよいですか?

SIM

解析するためにおよびWebページからvba組み合わせてスクリプトを作成しましたスクリプトを実行すると、これらの情報を完璧に取得できます。しかし、事は、私は別の3を使用しましたで、それが正常に私は、3つの異なるを作成行く作ることのように、、とregular expressionscompany namephonefaxexpressionsregex objectsrxprxp1rxp2

私の質問:以下で行ったのとは異なり、regex object3つを使用できるものを作成するにはどうすればよいpatternsですか?

これはスクリプトです(動作するもの):

Sub GetInfo()
    Const Url$ = "https://www.austrade.gov.au/SupplierDetails.aspx?ORGID=ORG0120000508&folderid=1736"
    Dim rxp As New RegExp, rxp1 As New RegExp, rxp2 As New RegExp

    With New XMLHTTP60
        .Open "GET", Url, False
        .send

        rxp.Pattern = "Company Name:(\s[\w\s]+)"
        rxp1.Pattern = "Phone:(\s\+[\d\s]+)"
        rxp2.Pattern = "Fax:(\s\+[\d\s]+)"

        If rxp.Execute(.responseText).Count > 0 Then
            [A1] = rxp.Execute(.responseText).Item(0).SubMatches(0)
        End If

        If rxp1.Execute(.responseText).Count > 0 Then
            [B1] = rxp1.Execute(.responseText).Item(0).SubMatches(0)
        End If

        If rxp2.Execute(.responseText).Count > 0 Then
            [C1] = rxp2.Execute(.responseText).Item(0).SubMatches(0)
         End If
    End With
End Sub

上記のスクリプトを実行するためにライブラリに追加する参照:

Microsoft XML, v6.0
Microsoft VBScript Regular Expressions
WiktorStribiżew

代替で正規表現を作成しrxp.Global = True、とのグローバルマッチングを有効にして、既知の文字列をグループ1にキャプチャし、それらの未知の部分をグループ2にキャプチャすることができます。次に、グループ1の値を確認することにより、変数に正しい値を割り当てることができます。 :

Const Url$ = "https://www.austrade.gov.au/SupplierDetails.aspx?ORGID=ORG0120000508&folderid=1736"
Dim rxp As New RegExp
Dim ms As MatchCollection
Dim m As Match
Dim cname As String, phone As String, fax As String

With New XMLHTTP60
    .Open "GET", Url, False
    .send

    rxp.Pattern = "(Phone|Company Name|Fax):\s*(\+?[\w\s]*\w)"
    rxp.Global = True

    Set ms = rxp.Execute(.responseText)
    For Each m In ms
        If m.SubMatches(0) = "Company Name" Then cname = m.SubMatches(1)
        If m.SubMatches(0) = "Phone" Then phone = m.SubMatches(1)
        If m.SubMatches(0) = "Fax" Then fax = m.SubMatches(1)
    Next

    Debug.Print cname, phone, fax
End With

出力:

Vaucraft Braford Stud       +61 7 4942 4859              +61 7 4942 0618

正規表現のデモを参照してください

パターンの詳細

  • (Phone|Company Name|Fax) -キャプチャグループ1:3つの選択肢のいずれか
  • :\s* -コロンと0以上の空白
  • (\+?[\w\s]*\w) -キャプチャグループ2:
    • \+? -オプション +
    • [\w\s]*-0つ以上の文字、数字、_または空白
    • \w-1文字、数字、または_

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

1つのパラメーターを使用して複数の正規表現の一致を取得するにはどうすればよいですか?

分類Dev

Pythonでflexを使用しているかのように正規表現オブジェクトを比較するにはどうすればよいですか?

分類Dev

Tkinterを使用して1つのフレーム内に複数のフレームをネストしようとしています。オブジェクト指向でこれを実現するにはどうすればよいですか?

分類Dev

1つのハンドラーを複数のオブジェクトに使用するにはどうすればよいですか?

分類Dev

1つのopenshiftyamlテンプレートに複数のオブジェクトタイプを含めるにはどうすればよいですか?

分類Dev

ARCoreで複数のオブジェクトを使用して1つのオブジェクトを生成するにはどうすればよいですか?

分類Dev

配列内のすべてのオブジェクトに1つのパラメーターを追加するにはどうすればよいですか?

分類Dev

矢印ポインターを使用して、それらのオブジェクト内に複数のスコアを持つ配列オブジェクトのクラスを出力するにはどうすればよいですか?

分類Dev

複数のXmlElementAttributesを持つオブジェクトにオートマッパーを使用するにはどうすればよいですか?

分類Dev

Javaの正規表現を使用して複数行のパターンをキャプチャするにはどうすればよいですか?

分類Dev

jqを使用して複数の出力オブジェクトの1つのカウントを見つけるにはどうすればよいですか

分類Dev

関数を呼び出すjavascriptオブジェクト内でこのパラメーターを使用するにはどうすればよいですか?

分類Dev

正規表現パターンを正規表現オブジェクトまたは文字列として保存するにはどうすればよいですか?

分類Dev

スコープ内の1つのオブジェクトのデータを使用するにはどうすればよいですか?

分類Dev

ReactHooksとContextAPIを使用して、useEffect内で呼び出された複数のエンドポイントからのデータを状態オブジェクトに正しく追加するにはどうすればよいですか?

分類Dev

パスに複数のオブジェクトがある場合、ガンDBのデータを削除するにはどうすればよいですか?

分類Dev

ファクトリパターン内でZF2正規表現バリデータを使用するにはどうすればよいですか

分類Dev

複数のブロック/行をsedまたは正規表現でマージするにはどうすればよいですか?

分類Dev

正規表現パターンから1つの文字列のみを拒否するにはどうすればよいですか?

分類Dev

正規表現から特定のパターンを除外するにはどうすればよいですか?

分類Dev

NSTableViewRow内のボタンを表現されたオブジェクトに応答させるにはどうすればよいですか?

分類Dev

いくつかのプロセスで動的パラメータ内にオブジェクトを作成するにはどうすればよいですか?

分類Dev

番号の正規表現パターンを設計するにはどうすればよいですか?

分類Dev

複数の基準を持つ正規表現を作成するにはどうすればよいですか?

分類Dev

正規表現を使用して、1行の文字列内の複数の要素を照合するにはどうすればよいですか

分類Dev

複数の同じ機能クラス(コントローラー)を、データオブジェクトをパラメーターとして受け取る1つに組み合わせるにはどうすればよいですか?

分類Dev

jqを使用して、複数の入力jsonオブジェクトから1つの出力オブジェクトにデータをコピーするにはどうすればよいですか?

分類Dev

正規表現パターンに特定の文字を含めるにはどうすればよいですか?

分類Dev

「なし」を無視して、複数のパンダ列オブジェクトタイプの値を1つの列にマージするにはどうすればよいですか?

Related 関連記事

  1. 1

    1つのパラメーターを使用して複数の正規表現の一致を取得するにはどうすればよいですか?

  2. 2

    Pythonでflexを使用しているかのように正規表現オブジェクトを比較するにはどうすればよいですか?

  3. 3

    Tkinterを使用して1つのフレーム内に複数のフレームをネストしようとしています。オブジェクト指向でこれを実現するにはどうすればよいですか?

  4. 4

    1つのハンドラーを複数のオブジェクトに使用するにはどうすればよいですか?

  5. 5

    1つのopenshiftyamlテンプレートに複数のオブジェクトタイプを含めるにはどうすればよいですか?

  6. 6

    ARCoreで複数のオブジェクトを使用して1つのオブジェクトを生成するにはどうすればよいですか?

  7. 7

    配列内のすべてのオブジェクトに1つのパラメーターを追加するにはどうすればよいですか?

  8. 8

    矢印ポインターを使用して、それらのオブジェクト内に複数のスコアを持つ配列オブジェクトのクラスを出力するにはどうすればよいですか?

  9. 9

    複数のXmlElementAttributesを持つオブジェクトにオートマッパーを使用するにはどうすればよいですか?

  10. 10

    Javaの正規表現を使用して複数行のパターンをキャプチャするにはどうすればよいですか?

  11. 11

    jqを使用して複数の出力オブジェクトの1つのカウントを見つけるにはどうすればよいですか

  12. 12

    関数を呼び出すjavascriptオブジェクト内でこのパラメーターを使用するにはどうすればよいですか?

  13. 13

    正規表現パターンを正規表現オブジェクトまたは文字列として保存するにはどうすればよいですか?

  14. 14

    スコープ内の1つのオブジェクトのデータを使用するにはどうすればよいですか?

  15. 15

    ReactHooksとContextAPIを使用して、useEffect内で呼び出された複数のエンドポイントからのデータを状態オブジェクトに正しく追加するにはどうすればよいですか?

  16. 16

    パスに複数のオブジェクトがある場合、ガンDBのデータを削除するにはどうすればよいですか?

  17. 17

    ファクトリパターン内でZF2正規表現バリデータを使用するにはどうすればよいですか

  18. 18

    複数のブロック/行をsedまたは正規表現でマージするにはどうすればよいですか?

  19. 19

    正規表現パターンから1つの文字列のみを拒否するにはどうすればよいですか?

  20. 20

    正規表現から特定のパターンを除外するにはどうすればよいですか?

  21. 21

    NSTableViewRow内のボタンを表現されたオブジェクトに応答させるにはどうすればよいですか?

  22. 22

    いくつかのプロセスで動的パラメータ内にオブジェクトを作成するにはどうすればよいですか?

  23. 23

    番号の正規表現パターンを設計するにはどうすればよいですか?

  24. 24

    複数の基準を持つ正規表現を作成するにはどうすればよいですか?

  25. 25

    正規表現を使用して、1行の文字列内の複数の要素を照合するにはどうすればよいですか

  26. 26

    複数の同じ機能クラス(コントローラー)を、データオブジェクトをパラメーターとして受け取る1つに組み合わせるにはどうすればよいですか?

  27. 27

    jqを使用して、複数の入力jsonオブジェクトから1つの出力オブジェクトにデータをコピーするにはどうすればよいですか?

  28. 28

    正規表現パターンに特定の文字を含めるにはどうすればよいですか?

  29. 29

    「なし」を無視して、複数のパンダ列オブジェクトタイプの値を1つの列にマージするにはどうすればよいですか?

ホットタグ

アーカイブ