我有一個包含的棋子座標的字符串的字符串:分割具有多個分離器
件= [Ka4Qb3Td7b4c4]
如何可以將字符串分割成一個列表中,由數字分離?
求購輸出:[ 'KA4', 'QB3', 'TD7', 'B4', 'C4']
我有一個包含的棋子座標的字符串的字符串:分割具有多個分離器
件= [Ka4Qb3Td7b4c4]
如何可以將字符串分割成一個列表中,由數字分離?
求購輸出:[ 'KA4', 'QB3', 'TD7', 'B4', 'C4']
聞起來像作業,但很容易..
import re
pieces = 'Ka4Qb3Td7b4c4'
m = re.compile('[A-Za-z]{1,2}\d+')
print m.findall(pieces)
產量的影響。 。
['Ka4', 'Qb3', 'Td7', 'b4', 'c4']
這個工作對我來說:
import re
mylist = []
pieces = "Ka4Qb3Td7b4c4"
for chunk in re.finditer("(.*?[0-9]{1})",pieces):
mylist.append(chunk.group(1))
print mylist
你可能需要,如果有2個分隔符來調整正則表達式(我不是一個國際象棋的人......)
對於利益的緣故,我重新設計它的建議列表理解並同意它是更清潔:
import re
pieces = "Ka4Qb3Td7b4c4"
mylist = [ chunk.group(0) for chunk in re.finditer(".*?\d+",pieces) ]
print mylist
這對於列表理解來說看起來非常好 – juliomalegria 2012-02-07 00:33:45
好主意julio。 – 2012-02-07 03:50:49
我不打算髮布,因爲我認爲它是作業。尤其是如果提出的解決方案在問題上不適合任務。如果你不幫助他們,你如何期望人們學習? – synthesizerpatel 2012-02-06 23:02:16
你的答案只是代碼。您可以*解釋*如何使用正則表達式分割字符串。這將會更有用。有關更詳細的推理,請參閱http://meta.stackexchange.com/a/10812/147331。 – Johnsyweb 2012-02-06 23:09:41
在回答問題時,試圖弄清問題的深度總是很艱難的 - 通常當我看到500+代表的人時,我傾向於讓代碼更加簡潔,讓代碼自己討論。如果他們低於100分,我會進一步細化。我確實很欣賞這些反饋 - 讓我們有所思考。 – synthesizerpatel 2012-02-06 23:15:09