我有这样的事情:
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) 我正在尝试使用 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)