我在提取webelement中的特定詞組并將其分配給一個串列時遇到了麻煩。我的 webelement.
我的webelement.text看起來像:
會計Johnathan Christensen <br>
總裁<br>
會計師 Annete Benning<br>
副總裁
我需要把它插入到一個串列中,它應該看起來像:
我需要把它插入到一個串列中。
list[['Johnathan Christensen'/span>,'President'/span>]
['Annete Bening', '副總統']]**
我在一個回圈中使用這段代碼得到的是一個空的結果:
list.append(re.findall(r"^vice-president (.*)"/span>,col.text)
我怎樣才能使它發揮作用?
uj5u.com熱心網友回復:
你可以不用regex來解決這個問題,下面是一個例子。
items = []
text = ''會計Johnathan Christensen <br>
總裁<br>
會計師 Annete Benning<br>
副總裁''
split = text.split('<br> ')
for i in range(0, len(split),2)。)
temp = [str(x).strip() .strip('Accountant'). strip() for x in split[i:i 2 ]]
items.append(temp)
print(items)
你將得到這樣的輸出:
[['Johnathan Christense', 'Preside'], ['Annete Benning', 'Vice Preside'] ]
uj5u.com熱心網友回復:
你能不能嘗試一下下面的方法:
import re
text = ''會計Johnathan Christensen <br>
總裁<br>
會計師 Annete Benning<br>
副總裁
''/span>
result = [list(i) for i in re.findall(r'^Accountants (. ?) (?:(?:s*<br>) ?
)(. ?)(?:(?:s*<br>)?
)', text, re.M)]
print(result)
輸出:
[['Johnathan Christensen', '總統'], ['Annete Benning', '副總統']]
對重碼的解釋:
^Accountants匹配該行開頭的子字串。(. ?)匹配上面模式和下面模式之間的子串。 將group1分配給該匹配。(?:(?:s*<br>)? )匹配行尾,前面有 可選的<br>標簽。(. ?)匹配上面模式和下面模式之間的子串。 將group1分配給匹配。(?:(?:s*<br>)? )匹配行尾,前面有 可選的<br>標簽字串。- 接下來的
(. ?)匹配下面的子串(可能是標題)。 將group2分配給這個匹配 。
- 最后的
(?:(?:s*<br>)? )與前面的行尾相匹配。 可選的<br>標簽字串。 re.M選項使^和$匹配到字串中任何一行的開始或結束。 行的開始或結束。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/321117.html
標籤:
上一篇:為資料創建一個EXCEL表格
下一篇:VScodemaven不執行插件
