2009-11-20 57 views
2

我在ISO 86012009-11-19T19:55:00)中有一段時間,它也與名稱commence配對。我試圖將其解析爲兩個。我目前最多到這裏:正則表達式到第1個冒號

import re 
sColon = re.compile('[:]') 

aString = sColon.split("commence:2009-11-19T19:55:00") 

顯然,這將返回:

>>> aString 
['commence','2009-11-19T19','55','00'] 

我想它是什麼,返回的是:

>>>aString 
['commence','2009-11-19T19:55:00'] 

我會如何做這在原創​​?另外,您是否推薦任何您發現有用的正則表達式鏈接或書籍,因爲我可以看到自己在未來需要它!

編輯:

爲了澄清...我需要一個正則表達式,只會在解析的:第一個實例,這可能嗎?冒號之前的文本(commence)有可能,是的...

+0

冒號前部分的可能值是多少?只有「開始」? – 2009-11-20 13:58:33

回答

5
>>> first, colon, rest = "commence:2009-11-19T19:55:00".partition(':') 

>>> print (first, colon, rest) 
('commence', ':', '2009-11-19T19:55:00') 
+0

這很完美。我不知道'分區'功能! – Federer 2009-11-20 14:23:25

+0

也稱爲split() – 2011-08-18 18:57:33

0

看起來像你需要.IndexOf(「:」),然後.Substring()?

+0

我認爲語言是Python。 – ghostdog74 2009-11-20 14:21:05

5

你可以把最大分裂參數分割功能

>>> "commence:2009-11-19T19:55:00".split(":",1) 
['commence', '2009-11-19T19:55:00'] 

官方文檔

S.split([SEP [,maxsplit]) - >串

名單
Return a list of the words in the string S, using sep as the 
delimiter string. If maxsplit is given, at most maxsplit 
splits are done. If sep is not specified or is None, any 
whitespace string is a separator and empty strings are removed 
from the result. 
0

@OP,don'不必要的。正在做什麼不需要正則表達式。 Python有很好的字符串操作方法,您可以使用。所有你需要的是split()和切片。這些是Python的基礎知識。

>>> "commence:2009-11-19T19:55:00".split(":",1) 
['commence', '2009-11-19T19:55:00'] 
>>> 
相關問題