2

我目前在页面渲染方法中实现了一个替换功能,它替换了常用的字符串 - 例如用根替换 [cfe] 到客户前端。这是因为该值可能会根据站点的版本而有所不同 - 例如,图像文件夹的根目录([imagepath])处于/Images开发和实时状态,但/Test/Images处于测试状态。

我有一个产品目录,我想将其更改[productName]为指向该产品目录页面的链接。我想浏览整个页面并用[someValue]相关链接替换所有实例。目前,我通过遍历产品数据库中的所有产品并替换[productName]为该产品目录页面的链接来做到这一点。但是,这仅限于数据库中存在的产品。当前已删除的产品的“链接”不会被替换,因此[someValue]将显示给用户。这看起来不太好。

所以你应该能够从中看到我的问题。有谁知道一种方法可以轻松实现我想要的目标?我可以使用正则表达式,但我没有太多经验。如果这是最简单的方法,使用“ For Each Match As String In Regex.Matches(blah, blah)”,那么我愿意进一步研究。

但是在某些时候,我想更进一步 - 例如设置页面布局,例如 3 列,图像右上角使用[layout type="3colImageTopRight" imageURL="imageURL"]Content here[/layout]. 我想我现在可以做到这一点,但我不知道如何处理这个imageURL问题,比如说,[Image:Product01.gif](使用regex.match("[[a-zA-Z]{0,}]")我认为会匹配[layout type="3colImageTopRight" imageURL="[Image:Product01.gif](它不会到达布局标签的末尾)。显然上面不太行,因为我没有在匹配字符串或任何东西中包含双引号,但你明白了一般的想法。你应该能够大致了解我正在做什么以及我正在尝试做什么尽管。

有没有人有任何想法或指示可以帮助我解决这个问题?另外,如果这不是严格的令牌替换,那么请指出它是什么,以便我可以进一步开发它。

Aristos - 希望重新解释这一点可以解决困惑。

提前致谢,

问候,

理查德克拉克

4

1 回答 1

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/

祝你好运。

于 2010-12-14T09:37:03.187 回答