我有一個自定義腳本,我想從python中提取數據,但我能想到的唯一方法是取出已標記的位,然後在此示例中留下未標記的位,如「go up」「go down」。如何在python中多次解析字符串?
string_a = [start]go up[wait time=500]go down[p]
string_b = @onclick go up[wait time=500]go down active="False"
在試圖這樣做,所有我能夠做到的是提取標位,但我不能想出一個辦法來保存心不是標誌着數據!當我提取其他位時,它總是會丟失! 這是我用來提取它們的函數。爲了減少標記,我多次調用它,但是我不能選擇它們提取的順序!
class Parsers:
@staticmethod
def extract(line, filters='[]'):
#@retval list
substring=line[:]
contents=[]
for bracket in range(line.count(str(filters[0]))):
startend =[]
for f in filters:
now= substring.find(f)
startend.append(now)
contents.append(substring[startend[0]+1:startend[1]])
substring=substring[startend[1]+1:]
return contents, substring
順便說一句,即時調用它在這一刻是這樣的。我想我應該把命令放回到@首先,但我不想再打破它。
star_string, first = Parsers.extract(string_a, filters='* ')
bracket_string, substring = Parsers.extract(string_a, filters='[]')
at_string, final = Parsers.extract(substring, filters='@ ')
請原諒我的壞蟒蛇,我學到了這一切,我自己,我仍然搞清楚這一點。
這是Python,而不是Java - 不需要爲創建類創建類。如果你只需要一個'extract'函數,只需在modulevelvel中創建函數 - 不需要'staticmethod'。 – jsbueno