Python正则表达式和熊猫

Python正则表达式和熊猫,python,regex,Python,Regex,我有一个html文本,稍后我想将其转换为数据帧 我有一段文字看起来是这样的: <tr> <td -some attributes- >Val1</td> <td -some attributes- >Val2</td> <td -some attributes- >Val3</td> </tr> <tr> <td -some attributes- >V

我有一个html文本,稍后我想将其转换为数据帧

我有一段文字看起来是这样的:

<tr>
   <td -some attributes- >Val1</td>
   <td -some attributes- >Val2</td>
   <td -some attributes- >Val3</td>
</tr>
<tr>
   <td -some attributes- >Val4</td>
   <td -some attributes- >Val5</td>
   <td -some attributes- >Val6</td>
</tr>

瓦尔1
瓦尔2
Val3
瓦尔4
瓦尔5
瓦尔6
我有正则表达式:
(.*)
,但它并没有捕获所有的值,它几乎覆盖了所有的文本

在我完成ctach之后,我把它放在一个数据帧中

那么,为什么这个正则表达式不能捕获它应该捕获的值呢

你可以这样尝试,而不是正则表达式-只是一个意见

这是我的工作。下面我附上了一个供使用的样品

如果您(真的)想使用正则表达式,可以执行以下操作:

content = """\
<tr>
   <td -some attributes- >Val1</td>
   <td -some attributes- >Val2</td>
   <td -some attributes- >Val3</td>
</tr>
<tr>
   <td -some attributes- >Val4</td>
   <td -some attributes- >Val5</td>
   <td -some attributes- >Val6</td>
</tr>"""

import re

td_regex = re.compile(r"<td[^>]+>"  # <td> tag
                      r"((?:(?!</td>).)+)")  # <td> content

print(td_regex.findall(content))

我推荐beautifulsoup而不是regex。。。。。还显示您试图使用的实际代码可能是查看每一行,一次一行,一个值跨越多行,或者完全不同的内容。我支持前面的评论。使用beautifulsoup解析html。给出一些它无法捕获的标记的示例。您的正则表达式
(.*)
是贪婪的(请参阅(文档]()),因此它捕获的内容超出了需要。
content = """\
<tr>
   <td -some attributes- >Val1</td>
   <td -some attributes- >Val2</td>
   <td -some attributes- >Val3</td>
</tr>
<tr>
   <td -some attributes- >Val4</td>
   <td -some attributes- >Val5</td>
   <td -some attributes- >Val6</td>
</tr>"""

import re

td_regex = re.compile(r"<td[^>]+>"  # <td> tag
                      r"((?:(?!</td>).)+)")  # <td> content

print(td_regex.findall(content))
['Val1', 'Val2', 'Val3', 'Val4', 'Val5', 'Val6']