簡體   English   中英

在Python中提取2個字符串之間的字符串?

[英]extract a string between 2 strings in python?

我需要給我~^之間的字符串

我有這樣的字符串

:::ABC???,:::DEF???

我需要用python獲取它們之間的字符串

我想做所有這一切,因為我正試圖從html頁面提取文本。 像這個例子

<td class="cell-1">
    <div><span class="value-frame">&nbsp;~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 = '&nbsp;~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">&nbsp;~ABC^,~DEF^</span></div></td>'
matchObj = re.findall(r'~(.*?)\^', target)
print matchObj 
# ['ABC', 'DEF']

您可以了解有關重新模塊的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM