【发布时间】:2018-01-04 10:56:54
【问题描述】:
我必须编写一个函数,它应该返回以下字符串中的第一个单词:
("Hello world") -> return "Hello"
(" a word ") -> return "a"
("don't touch it") -> return "don't"
("greetings, friends") -> return "greetings"
("... and so on ...") -> return "and"
("hi") -> return "hi"
所有单词都必须返回第一个单词,并且您可以看到有些单词以空格开头、撇号或以逗号结尾。
我使用了以下选项:
return text.split()[0]
return re.split(r'\w*, text)[0]
在某些字符串上都出错了,谁能帮帮我???
【问题讨论】:
-
re.search(r'\w+', text).group()? -
@cᴏʟᴅsᴘᴇᴇᴅ 将返回
don而不是don't;) 试试re.search('[\w\']+', s).group() -
@DeepSpace 这个问题的烦人之处在于对单词的一部分和非单词的任意限制。
-
可以使用
[\w']+查找所有单词成分和撇号,但这会很快导致"'No!' he shouted"之类的输入出现问题('No可能不需要)。
标签: python regex string-function