1

Access VBA(VBScript正規表現5.5)で正規表現を使用していますが、理解できない動作がいくつかあります。これは通常の正規表現の動作ですか?なんで?

入力は

some html ... id="devices_internal_table">Some interestingText</a>
< more html

私はここで別のものを見つける必要がありますが、私はこれで立ち往生しています:

pregexp.Pattern ="devices_table_internal([.]*?)\n<"  REM (A1)
pregexp.Pattern ="devices_table_internal([.\n]*?)<"  REM (A2)

pregexp.Pattern ="devices_table_internal(.*?)\n<"       REM (B1)
pregexp.Pattern ="devices_table_internal([.""<>\n]*?)<" REM (B2)
pregexp.Pattern ="devices_table_internal([.""<>]*?)\n<" REM (B3)
pregexp.Pattern ="devices_table_internal((.*\n)*?)<"    REM (B4)

パターンAは結果を出しませんが、パターンBは結果を出します。

  • A1はB1と等しくありませんか?
  • B1は、<>と "が。の一部であることを示唆していますが、なぜA2は機能しないのですか(B2は機能します)?
  • B4 / A2についても同じことが言えます。複数行の後に<が続く場合は機能しますが、複数の[文字または改行]の後に<が続く場合は機能しませんか?

いくつかの異なる正規表現が必要なので、「興味深いテキスト」を見つける方法についての解決策よりも、3つの奇妙なことの説明に興味があります;)

4

1 に答える 1

1

[.]ピリオドだけで構成される文字クラスです。.それ自体はどの文字とも一致します。

[.]*したがって、は任意の数のピリオドに一致し(通常は\.*代わりに記述されます)、.*任意の数の文字に一致します。

また、正規表現を使用してHTMLを解析するべきではない理由については、stackoverflowで最も支持されている回答を参照してください。

于 2012-05-08T11:14:10.043 に答える