您可以使用python regexp模塊拆分字符串,並查找由一個或多個數字組成的子字符串的出現次數。
import re
pattern = re.compile("([0-9]+)")
s = "foo bar Jan-01 03-56, blah"
toks = pattern.split(s)
# toks is ['foo bar Jan-', '01', ' ', '03', '-', '56', ', blah']
如果您的格式正是「MMM-DD,YYYY」,那麼你可以使用像這樣(改編自問題)。我假設你正在試圖從中提取一天?
def get_day_number(line):
month_day, year = line.split(",", 1) # '1' splits at most once
month, day = month_day.split("-", 1)
return int(day, 10)
不會發生你所提到的八進制數的問題,直到您嘗試將字符串轉換爲使用int(s)
整數。您可以通過明確指定基數來強制整數轉換使用十進制,這是python中的一個常規良好實踐。
s = "010"
i = int(s, 10)
print i # 10
你的問題自相矛盾。 「我想要做的就是拆分」 - 這是一個字符串操作 - 「''Jan-01,2005''」 - 看起來像一個字符串,然後突然:「我試圖將它轉換爲字符串」。那麼它是什麼? –
''「Jan-01,2005」.split(',')'正常工作。如果這不是您所看到的實際數據,則需要提供更多信息。你需要舉一個完整的例子,因爲這工作得很好。 – Dan
'str(some_string.split(','))'會給你一個字符串化的列表,這幾乎肯定不是你想要的。 –