【问题标题】:Token replacement代币更换
【发布时间】:2010-03-24 17:52:19
【问题描述】:

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

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

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

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

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

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

提前致谢,

问候,

理查德·克拉克

【问题讨论】:

  • 刚刚看到 2020 年 1 月 11 日的编辑——差不多 10 年过去了——该死的我当时还是个菜鸟。甚至不关心某些单词中的标点符号......

标签: asp.net tokenize stringtokenizer replace


【解决方案1】:

@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/

祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-23
    • 2021-07-17
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 2012-11-15
    相关资源
    最近更新 更多