Regular expression 是貪婪的

前兩天才赫然發現,自己完全忽略了這個特性,導致結果完全不是我所預期…
這個特性就是貪婪(請參考:一輩子受用的 Regular Expressions — 兼談另類的電腦學習態度)。
所以當你想要利用這個式子:\<title\>(?<titleStr>.*)\</title\> 去這堆文字: <title>AAA</title>…other tags…<title>BB</title> 取得每對 <title>…</title> 裡面的文字時,實際上只得到一個結果,內容是 AAA</title>…other tags…<title>BB
>_< 這下該怎麼辦?
我想到幾種方式:

  • 取得每個 <title> 的位置,然後再利用 String.IndexOf 去搜尋 </title>,取得位置之後,就可以取得<title>…</title> 裡面的文字。
  • 分別用 Regular Expression 取得<title>與</title>的位置,然後再依據結果,去取裡面的字串。

希望是能有更好的解~