令牌替换

时间:2010-03-24 17:52:19

标签: asp.net tokenize stringtokenizer replace

我目前在页面渲染方法中实现了替换功能,它取代了常用的字符串 - 例如将[cfe]替换为客户前端的根。这是因为根据站点的版本,值可能会有所不同 - 例如,映像文件夹的根目录([imagepath])是开发和实时的/ Images,但是/ test / Images on test。

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

所以你应该能够从中看到我的问题。有没有人知道如何轻松实现我想要的方式?我可以使用正则表达式,但我没有太多经验。如果这是最简单的方法,使用“将每个匹配作为字符串在Regex.Matches(等等,等等)”,那么我愿意进一步研究这个。

然而,在某些时候我想进一步考虑 - 例如使用[layout type =“3colImageTopRight”imageURL =“imageURL”]设置页面布局,例如3列,图像右上角,这里的内容[/ layout]。我想我现在可以做到这一点了,但是如果imageURL是,那么我无法弄清楚如何处理这个问题[图片:Product01.gif](使用regex.match(“[[a-zA-Z] { 0,}]“)我认为只匹配[layout type =”3colImageTopRight“imageURL =”[Image:Product01.gif](它不会到达布局标签的末尾)。显然上面的内容不会很有用,就像我没有在匹配字符串或任何内容中包含双引号,但你得到了一般的想法。你应该能够了解我所得到的以及我想要做的事情。

有没有人有任何想法或指示可以帮助我这个?此外,如果这不是严格的代币替换,那么请指出它是什么,所以我可以进一步发展它。

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

提前致谢,

此致

理查德克拉克

1 个答案:

答案 0 :(得分: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/
祝你好运。