【问题标题】:creating my own shorttags using regex?使用正则表达式创建我自己的短标签?
【发布时间】:2011-11-14 13:36:32
【问题描述】:

假设我有以下短标签正则表达式:

\[BANNER{([0-9]*)}{(site1|site2)}{([A-Z]*)}\]

基本上,我有一个应该采用这个短标签的 CMS,例如:

[BANNER{23}{site1}{HELLO}]

并打印出如下内容:

<a href='http://site1.com?par1=23&par2=HELLO'>SOME TEXT</a>

现在,当我输入所有这 3 个参数时,它的效果很好,但我怎样才能让它们可选? 以便它接受以下任何选项:

[BANNER]
[BANNER{23}]
[BANNER{23}{site1}]

并且会输出一些默认值,我想在每个大括号 {} 上创建一个捕获组 - 但我想我的语法错误。

【问题讨论】:

    标签: regex tags


    【解决方案1】:

    如果我对问题的理解正确,您可以从

    \[BANNER({([0-9]*)})?({(site1|site2)})?({([A-Z]*)})?\]
    

    【讨论】:

    • 那个正则表达式创建了太多的组,你可能想排除一些组 (?:)
    • @SeRPRo:你当然是对的。我写了尽可能简单的解决方案,但它不是最有效的。
    【解决方案2】:

    这个应该可以的:

    /\[BANNER{([0-9]*)}(?:{(site1|site2)})?(?:{([A-Z]*)})?\]/
    

    查看结果here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 2021-08-08
      • 2011-11-27
      • 2010-10-09
      相关资源
      最近更新 更多