通过正则表达式解析HTML

时间:2016-03-02 08:38:12

标签: html regex parsing

在我的项目中,我有一个表格。请参阅以下内容:

enter image description here

这里,我有两个字段,HTMl和CSS。用户可以通过保存此表单来保存其模板。目前,我将HTML和css保存为数据库中的单独字段。我需要准备一个包含有效数据的模板。所以,我从数据库中获取HTML。请参阅以下问题: ***当我获取HTML时。这是一个字符串。

  1. 我需要使用正则表达式从#{item(1,5)}中捕获两个数字(1和5)。会是什么样的模式?

  2. 我需要使用正则表达式捕获<div class="layout">....</div>块。模式是什么?

  3. 我需要使用正则表达式将#{url}替换为有效数据。模式是什么?

  4. 以下是包含自定义标记的HTML:

    #{if(total,0)}#{else}
    <div id="recommend">
      <div class="title"><p>Title</p></div>
        #{item(1,5)}
      <div class="layout">
        <div class="item">
          <a href="#{url}"><img border="0" alt="#{name}" src="#{image}"></a>
        </div>
        <div class="goods">
           <a href="#{url}">#{truncate(name,27)}</a>
        </div>
        <div class="price">#{comma(price_tax)}</div>
      </div>
      #{/item}
      <br clear="all">
    </div>
    #{/if}
    

    请帮帮我。

1 个答案:

答案 0 :(得分:0)

  1. #{[\w]+\((\d+),(\d+)\)}
  2. https://regex101.com/r/vS0uJ2/1

    输出:

    MATCH 1  
    1.  [94-95] `1`  
    2.  [96-97] `5`  
    
    1. <div class="layout"\>((?:.*?(?:<div).*?(?:<\/div>).*?){0,})<\/div>
    2. https://regex101.com/r/bL8gY3/2

      输出:

      MATCH 1
      1.  [102-371]   
      `<div class="layout">
          <div class="item">
            <a href="#{url}"><img border="0" alt="#{name}" src="#{image}"></a>
          </div>
          <div class="goods">
             <a href="#{url}">#{truncate(name,27)}</a>
          </div>
          <div class="price">#{comma(price_tax)}</div>
        </div>`
      
      1. <a href="(#\{url\})
      2. https://regex101.com/r/aB2sH1/1

        输出:

        MATCH 1
        1.  [161-167]   `#{url}`
        MATCH 2
        1.  [270-276]   `#{url}`