获取包含字符串的行

2024-10-01 11:27:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从文本文件中获取一行包含特定字符序列的行:

我的意见:

    <tr><td>lucas.vlan77.be</td> <td><span style="color:green;font-weight:bold">V</span></td> <td><span style="color:green;font-weight:bold">V</span></td> <td><span style="color:green;font-weight:bold">V</span></td> </tr>
<tr><td>jeanpierre.vlan77.be</td> <td><span style="color:green;font-weight:bold">V</span></td> <td><span title="Cannot connect to 193.191.187.25:22345." style="color:red;font-weight:bold">X</span></td> <td><span title="No response from DNS at 193.191.187.25." style="color:red;font-weight:bold">X</span></td> </tr>
<tr><td>sofie.vlan77.be</td> <td><span style="color:green;font-weight:bold">V</span></td> <td><span title="Cannot connect to 193.191.187.26:22345." style="color:red;font-weight:bold">X</span></td> <td><span title="No response from DNS at 193.191.187.26." style="color:red;font-weight:bold">X</span></td> </tr>
<tr><td>thomas.vlan77.be</td> <td><span style="color:green;font-weight:bold">V</span></td> <td><span style="color:green;font-weight:bold">V</span></td> <td><span style="color:green;font-weight:bold">V</span></td> </tr>

现在我需要得到包含lucas的行,我用beauthoulsoup尝试了这个方法,但它并不是只获取一行html标记的内容,所以我使用了一个常规的in运算符:

^{pr2}$

但是它一直返回0而不是

<tr><td>lucas.vlan77.be</td> <td><span style="color:green;font-weight:bold">V</span></td> <td><span style="color:green;font-weight:bold">V</span></td> <td><span style="color:green;font-weight:bold">V</span></td> </tr>

Tags: titlestylegreenredbetrcolortd
1条回答
网友
1楼 · 发布于 2024-10-01 11:27:13

如果input只是一个字符串,那么for line in input不迭代行,而是迭代字符。因此'lucas'永远不会在一个单字符字符串中找到,tableInput也不会被赋值。基于行的迭代行为只在对象是文件时发生。在

如果你想在一个字符串的每一行中循环,你必须:

for line in input.split('\n'):
    ...

既然有beauthoulsoup可用,我想用它来读取每行第一个单元格中的值,而不是依赖粗糙而脆弱的字符串搜索。在

预计到达时间:

how I would get the table entry for the row that contains the string 'lucas' any hints ?

使用td.parent获取包含行,td.parent.parent获取包含表/tbody,依此类推。在

如果您想在下一列中得到VX,可以这样说:

^{pr2}$

相关问题 更多 >