小编use*_*387的帖子

在python中使用正则表达式嵌套括号

我有这样的事情:

Othername California (2000) (T) (S) (ok) {state (#2.1)}
Run Code Online (Sandbox Code Playgroud)

是否有正则表达式代码获取:

Othername California ok 2.1
Run Code Online (Sandbox Code Playgroud)

即我想将数字保持在圆括号内,而这些数字又在{}内,并保持文本"ok"在()内.我特别需要字符串"ok"打印出来,如果包含在我的行中,但我想摆脱括号内的其他文本,例如(V),(S)或(2002).

我知道可能正则表达式不是解决此类问题的最有效方法.

任何帮助,将不胜感激.

编辑:

字符串可能会有所不同,因为如果某些信息不可用,则不包含在该行中.文本本身也是可变的(例如,每行都没有"状态").所以可以有一个例子:

Name1 Name2 Name3 (2000) (ok) {edu (#1.1)}
Name1 Name2 (2002) {edu (#1.1)}
Name1 Name2 Name3 (2000) (V) {variation (#4.12)}
Run Code Online (Sandbox Code Playgroud)

python regex text

5
推荐指数
1
解决办法
3618
查看次数

BeautifulSoup 从多个表中提取数据

我正在尝试使用 BeautifulSoup从一个html 文件中的两个 html 表中提取一些数据。

这实际上是我第一次使用它,我搜索了很多问题/示例,但似乎没有一个适用于我的情况。html 包含两个表,第一个包含第一列的标题(始终是文本),第二个包含以下列的数据。此外,该表包含文本、数字和符号。这使得像我这样的新手一切都变得更加复杂。这是从浏览器复制的 html 布局,我能够提取行的整个 html 内容,但仅限于第一个表格,因此实际上我没有获得任何数据,而只有第一列的内容。

我试图获得的输出是一个包含表的“联合”信息的字符串(Col1= text, Col2=number, Col3=number, Col4=number, Col5=number),例如:

Canada, 6, 5, 2, 1
Run Code Online (Sandbox Code Playgroud)

以下是每个项目的 Xpath 列表:

"Canada": /html/body/div/div[1]/table/tbody[2]/tr[2]/td/div/a
"6": /html/body/div/div[2]/div/table/tbody[2]/tr[2]/td[1] 
"5": /html/body/div/div[2]/div/table/tbody[2]/tr[2]/td[3] 
"2": /html/body/div/div[2]/div/table/tbody[2]/tr[2]/td[5]
"1": /html/body/div/div[2]/div/table/tbody[2]/tr[2]/td[7]
Run Code Online (Sandbox Code Playgroud)

我也会对“粗略”html 格式的字符串感到满意,只要每行有一个字符串,这样我就可以使用我已经知道的方法进一步解析它。这是我到目前为止的代码。谢谢!

from BeautifulSoup import BeautifulSoup
html=""" 
my html code
"""
soup = BeautifulSoup(html)
table=soup.find("table")
for row in table.findAll('tr'):
    col = row.findAll('td')
    print row, col
Run Code Online (Sandbox Code Playgroud)

html python beautifulsoup

2
推荐指数
1
解决办法
9331
查看次数

标签 统计

python ×2

beautifulsoup ×1

html ×1

regex ×1

text ×1