2012-05-08 44 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

相關問題