2010-03-24 89 views
2

我目前在頁面渲染方法中實現了一個替換函數,該函數替換了常用的字符串 - 比如將[root]替換爲客戶前端的[cfe]。這是因爲根據站點版本(例如根目錄到圖像文件夾([imagepath])的值可能不同)是/開發和生活中的圖像,而測試中是/測試/圖像。代幣替換

我有一個產品目錄,我想將[productName]更改爲該產品目錄頁的鏈接。我想瀏覽整個頁面,並將[someValue]的所有實例替換爲相關鏈接。目前,我通過循環瀏覽產品數據庫中的所有產品,並使用指向該產品的編目頁面的鏈接替換[productName]來實現此目的。但是,這僅限於數據庫中存在的產品。已經移除的產品的「鏈接」目前不會被替換,因此[someValue]將顯示給用戶。這看起來不太好。

所以你應該能夠看到我的問題。有沒有人知道一種方法來實現我想要的輕鬆?我可以使用正則表達式,但我沒有太多的經驗。如果這是最簡單的方法,那麼使用「For Each Match As String In Regex.Matches(blah,blah)」,那麼我願意進一步研究這一點。

然而,在某些時候,我想進一步藉此 - 使用[佈局類型=「3colImageTopRight」 IMAGEURL =「IMAGEURL」]內容這裏例如設置頁面佈局與圖像右上方如3列[/佈局] 。我認爲我現在可以這樣做,但是我無法弄清楚如果imageURL是,例如[Image:Product01.gif](使用regex.match(「[[a-zA-Z] { 0,}]「)我認爲只會匹配[layout type =」3colImageTopRight「imageURL =」[Image:Product01.gif](它不會到達佈局標籤的末尾)。我沒有在匹配字符串或任何內容中加入雙引號,但是你得到了一般想法,你應該能夠得到我所得到的以及我想要做的事情的一般想法。 ?這可以幫助我解決這個此外,如果這不是嚴格的令牌進行替換,那麼請點我它是什麼任何意見或指針,這樣我就可以進一步發展這一

Aristos的 - 希望reexplainin這解決了混亂。

由於提前,

問候,

理查德·克拉克

回答

0

@RichardClarke - 我會用正則表達式去,他們不是那麼可怕的學習,你可能會認爲,用位謹慎使用會解決你的問題。

我一直髮現這是一個非常有用的工具。

http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx 

用小抄;-)

http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/ 

好運去很好。