【问题标题】:Regex not giving the results expected正则表达式没有给出预期的结果
【发布时间】:2017-07-25 17:02:45
【问题描述】:

所以,我得到了一些需要提取值的 html 表,做了一个正则表达式来获取我想要的值。

html 表格可以是以下两种格式:

<td height="20" style="width:59px;height:20px;">1</td>
            <td style="width:212px;">Mendes, Paulo [AA]</td>
            <td style="width:99px;">39</td>
            <td>8</td>
            <td style="width:85px;">$10,000</td>
        </tr><tr height="20"><td height="20" style="width:59px;height:20px;">2</td>
            <td style="width:212px;">Campos, Miguel [AC]</td>
            <td style="width:99px;">37</td>
            <td>6</td>
            <td style="width:85px;">$5,000</td>

还有一个

<td>1</td>
            <td>Mendes, Paulo [AA]</td>
            <td>39</td>
            <td>8</td>
            <td>$10,000</td>
        </tr><tr height="20"><td>2</td>
            <td>Campos, Miguel [AC]</td>
            <td>37</td>
            <td>6</td>
            <td>$5,000</td>

对于没有样式的示例,我可以使用此正则表达式获得我想要的值:

<td>(\d+)<\/td>\n+\t*<td>([\w+, ]+) \[(\w{2})\]<\/td>

它用于php,我一直在使用https://regex101.com/首先测试正则表达式。

现在要获取带有样式的表格的值,我没有运气。

尝试了“完美匹配”:

 <td height\=\"20\" style\=\"width\:59px\;height\:20px\;\">(\d+)<\/td>\n+\t*<td style\=\"width\:212px\;\">([\w+, ]+) \[(\w{2})\]<\/td>

但它没有抓住我想要的。甚至尝试进行否定搜索,但它仍然不起作用。我做错了什么?

【问题讨论】:

标签: php regex


【解决方案1】:

为什么不使用 QuerySelectorAll ('');这要容易得多。您可以使用它来检索 td 元素的内部文本并使用循环将它们存储在数组中。获得 td 后,您可以使用 jQuery Ajax 将其发送到 .php 文件以进行处理。

例如:

var tdArr = [];

var tdContent = document.querySelectorAll('table tr td');

for ( let i = 0; i  < tdContent.length; i++){
    tdArr.push(tdContent[i].textContent);
}

【讨论】:

  • 对此一无所知,将对此进行调查。谢谢
  • 没问题,希望对你有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多