python根据分隔符查找子字符串

时间:2013-09-15 03:41:42

标签: python regex string

我是Python的新手,所以我可能会遗漏一些简单的东西。

我有一个例子:

 string = "The , world , is , a , happy , place " 

我必须创建由,分隔的子字符串,并分别打印和处理实例。 这意味着在这个例子中我应该能够打印

The 
world 
is 
a
happy 
place

我可以采取什么方法?我试图使用字符串查找功能,但

Str[0: Str.find(",") ]

无法帮助找到第二,第三个实例。

4 个答案:

答案 0 :(得分:12)

尝试使用split功能。

在你的例子中:

string = "The , world , is , a , happy , place "
array = string.split(",")
for word in array:
    print word

您的方法失败,因为您将其编入索引以从开头到第一个“,”生成字符串。如果你然后将它从第一个“,”索引到下一个“,”并以这种方式遍历字符串,那么这可能会有效。尽管如此,斯普利特的效果要好得多。

答案 1 :(得分:5)

字符串有split()方法。它返回一个列表:

>>> string = "The , world , is , a , happy , place "
>>> string.split(' , ')
['The', 'world', 'is', 'a', 'happy', 'place ']

如您所见,最后一个字符串上有一个尾随空格。分割这种字符串的更好方法是:

>>> [substring.strip() for substring in string.split(',')]
['The', 'world', 'is', 'a', 'happy', 'place']

.strip()从字符串末尾剥去空格。

使用for循环打印单词。

答案 2 :(得分:2)

另一种选择:

import re

string = "The , world , is , a , happy , place "
match  = re.findall(r'[^\s,]+', string)
for m in match:
    print m

输出

The
world
is
a
happy
place

查看demo

您也可以使用match = re.findall(r'\w+', string),您将获得相同的输出。

答案 3 :(得分:1)

非常感谢Python中方便的字符串方法:

print "\n".join(token.strip() for token in string.split(","))

输出:

The
world
is
a
happy
place

顺便说一句,单词string对变量名称来说是个不错的选择(Python中有一个string模块。)