2012-05-08 45 views
1

我正在使用Access VBA中的正则表达式(VBScript Regular Expressions 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) 

分布格局不给任何结果,而图形B做。

  • 是不是A1等于B1?
  • B1建议,即<>和”是的一部分,但为什么 然后不A2工作(但不B2)
  • 同样为B4/A2:?其次<作品多行,但是多[其次<字符或换行]不

,因为我需要一些不同的正则表达式,我更感兴趣的是解释三个奇怪的事情不是解决办法,我怎么可能会发现“有趣的文字”?)

回答

1

[.]是一个字符类组成的只是一段时间。 .本身可以匹配任何字符。

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

此外,请参阅the most highly-upvoted answer在stackoverflow为什么你不应该尝试解析与正则表达式的HTML。

+0

...和最后三次我检查出没有有趣的文字(和以前一样),因为别的东西出错了。这就解释了B2&B3。谢谢。有时候它很容易被忽视的人有自己的错误。至于正则表达式/ HTML,如果你想解析一个页面,这是明确的。如果您只需要一个具有指定ID的标签/ EndTag,那么它仍然非常好。 – Johanness

相关问题