[英]extract a string between 2 strings in python?
我需要給我~
和^
之間的字符串
我有這樣的字符串
:::ABC???,:::DEF???
我需要用python獲取它們之間的字符串
我想做所有這一切,因為我正試圖從html頁面提取文本。 像這個例子
<td class="cell-1">
<div><span class="value-frame"> ~ABC^,~DEF^</span></div>
</td>
您可以在生成器表達式中使用isalpha()
函數。 然后使用join()
將字符組合為單個string
。
def extract_string(s):
return ''.join(i for i in s if i.isalpha())
樣本輸出:
print extract_string(':::ABC???,:::DEF???')
>>> ABCDEF
但是,如果僅要提取~...^
之間的字符,則僅用於提取所有字符:
import re
def extract_string(s):
match = re.findall(r"~([a-zA-z]*)\^", s)
return match
樣本輸出:
s = ' ~ABC^,~DEF^'
print extract_string(s)
>>> ['ABC', 'DEF']
請注意:如果您使用正則表達式和/或字符串操作來解析HTML ,如著名的SO答復所示,請使用HTML解析器;否則,請使用HTML解析器。 例如Beautiful Soup庫而不是:D!
似乎您需要ABC和DEF,因此您需要像這樣寫(。*?)
import re
target = ' <td class="cell-1"><div><span class="value-frame"> ~ABC^,~DEF^</span></div></td>'
matchObj = re.findall(r'~(.*?)\^', target)
print matchObj
# ['ABC', 'DEF']
您可以了解有關重新模塊的更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.