2012-06-15 47 views
1

我有以下字符串:簡單的regex分裂

string = "Peter Pan, Pete Sampras; Little Pete" 

我需要通過名稱,將其拆分:

split_string = ["Peter Pan", "Pete Sampras", "Little Pete"] 

我想使用re.findall但我有一點麻煩它:

print re.findall(r'[,;]', string) 
[";", ";", ";"] 

我在做什麼錯在這裏,我將如何正確使用re.findall位置o等同於分割字符串?

回答

2

使用re.split如下會分散你的字符串:

string = "Peter Pan, Pete Sampras; Little Pete" 
print re.split(r'[,;]', string) 
["Peter Pan", "Pete Sampras", "Little Pete"] 
+3

re.split(r'\ s * [,;] \ s *',string)也會去掉空格。 – Oren

+0

此外,我會避免使用名稱「字符串」作爲一個變量,因爲它是在標準庫中... – mgilson

1

或者,如果你不知道的分離,但肯定他們之間,你可以有一個空間的名稱(或更多)用途:

re.findall("\w+\s+\w+", target_string) 

這並不意味着只有一個字的名字被跳過,因爲\w代表一個字母,\s的空白,並+指示一個或多個EL一個貪婪搜索對此語句。