如何在 </td><td> 正则表达式中替换为其他字符



我正在尝试废弃一些包含代理列表的网页并设法废弃代理和端口但我坚持要替换代理和端口之间的表边界将其替换为":"这是我的正则表达式代码

(d{1,3}.d{1,3}.d{1,3}.d{1,3})(?:s+|s*</td><td>s*)(d{2,5})

这是html 中的剪贴页

<tr><td>35.199.100.7</td><td>8080</td><td>US</td><td class='hm'>United States</td><td>elite proxy</td><td class='hm'>no</td><td class='hx'>yes</td><td class='hm'>1 second ago</td></tr><tr><td>163.172.181.29</td><td>80</td><td>FR</td><td class='hm'>France</td><td>elite proxy</td><td class='hm'>no</td><td class='hx'>no</td><td class='hm'>1 second ago</td></tr><tr><td>178.213.144.238</td><td>41258</td><td>RU</td><td class='hm'>Russian Federation</td><td>elite proxy</td><td class='hm'>no</td><td class='hx'>yes</td><td class='hm'>1 second ago</td></tr><tr><td>142.93.79.212</td><td>3128</td><td>CA</td><td class='hm'>Canada</td><td>anonymous</td><td class='hm'>no</td><td class='hx'>no</td><td class='hm'>1 second ago</td></tr><tr>

这是我的测试页面https://www.phpliveregex.com/p/oPW有人能帮我吗谢谢

尝试这样做:d+(?:.d+){3}K</td><td>(?=d+)并替换为:

演示

您的数据似乎是网页的一个子集,或者是"预过滤"的网页。在这种情况下,使用正则表达式并没有错,因为输入数据很简单。

然而,问题是,你是如何获得这些数据的?可能还有其他几个正则表达式。正如豪尔赫在评论中所说,事情可能会出错。

除非这是一个一次性脚本,否则您真的应该考虑使用一些html解析器重写整个脚本。

最新更新