2012-05-18 107 views
5

我指的是正則表達式備忘單。 它說不明正則表達式

{3,5}意味着

{3,5}?意味着3,4,5 ungreedy +

是什麼ungreedy +說明什麼?

+0

你說的是[這張小抄],不是嗎?請注意,它是從多種不同風格中繪製的功能的混搭;所以不要指望所有的東西都適合你的選擇。此外,它還列出了'(?!= ...)'作爲消極後視的替代語法,這只是錯誤的。我熟悉的每一種風格都使用'(?<!...)',如果它支持向後看的話。 –

回答

9

量化器{3,5}?意味着它將嘗試首先匹配3次出現,然後查看錶達式的其餘部分是否匹配。如果表達式的其餘部分失敗,它會回溯並嘗試4,然後最後5.

貪婪版本{3,5}將以相反的順序嘗試匹配 - 最長的第一個。

請注意,貪婪不會影響字符串是否匹配。它隻影響引擎執行搜索的順序,以及捕獲組的捕獲內容。

下面是一個演示不同之處的例子。想象一下你有字符串aaaaabc

  • (a{3,5})(\w*)將捕獲aaaaabc(rubular)
  • (a{3,5}?)(\w*)將捕獲aaaaabc(rubular)
+0

謝謝。我部分理解你的意思。你能用一個例子來解釋一下嗎? – Ank

+0

@Ankur:增加了一個例子。 –

+0

謝謝你的例子.. – Ank