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 建议, <>and" 是 . 的一部分,但为什么 A2 不起作用(但 B2 起作用)?
  • B4/A2 也是如此:多行后跟 < 有效,但多个 [字符或换行符] 后跟 < 不是吗?

因为我需要一些不同的正则表达式,所以我更感兴趣的是对这三个奇怪的事情的解释,而不是关于如何找到“有趣的文本”的解决方案;)

4

1 回答 1

1

[.]是一个仅由句点组成的字符类。.本身匹配任何字符。

[.]*因此,匹配任意数量的句点(通常写成\.*),而.*匹配任意数量的字符。

此外,请参阅stackoverflow 上最受好评的答案,了解为什么您不应该尝试使用正则表达式解析 HTML。

于 2012-05-08T11:14:10.043 回答