📅  最后修改于: 2020-07-29 15:47:01             🧑  作者: Mango
给定一个字符串,其中包含许多由空格分隔的单词,请编写一个Python程序来迭代字符串的这些单词。
例子:
输入: str = “mangodoc is a computer science portal for Geeks"
输出:
mangodoc
is
a
computer
science
portal
for
Geeks
输入: str = “Geeks for Geeks"
输出:
Geeks
for
Geeks
方法1:使用split()
使用split()
函数,我们可以将字符串分成单词列表,如果希望完成这一特定任务,它是最通用和推荐的方法。但是缺点是在包含标点符号的字符串中失败。
# Python3代码演示使用split()从字符串中提取单词
# 初始化字符串
test_string = "mangodoc is a computer science portal for Geeks"
# 打印原始字符串
print ("原始字符串是 : " + test_string)
# 使用split()从字符串中提取单词
res = test_string.split()
# 打印结果
print ("\n字符串是")
for i in res:
print(i)
输出:
原始字符串是 : mangodoc is a computer science portal for Geeks
字符串是
mangodoc
is
a
computer
science
portal
for
Geeks
方法2:使用re.findall()
如上所述,在包含所有特殊字符和标点符号的情况下,使用split在字符串中查找单词的常规方法可能会失败,因此需要使用正则表达式来执行此任务。findall()
函数在过滤字符串并提取忽略标点符号的单词后返回列表。
# Python3代码演示使用正则表达式(findall())从字符串中提取单词
import re
# 初始化字符串
test_string = "mangodoc is a computer science portal for Geeks !!!"
# 打印原始字符串
print ("原始字符串是 : " + test_string)
# 使用regex(findall())从字符串中提取单词
res = re.findall(r'\w+', test_string)
# 打印结果
print ("\n字符串是")
for i in res:
print(i)
输出:
原始字符串是 : mangodoc is a computer science portal for Geeks!!!
字符串是
mangodoc
is
a
computer
science
portal
for
Geeks