我用Python编写了以下代码:
import re
string = "what are you doing you i just said hello guys"
regexValue = re.compile(r'(\s\w\w\w\s)')
mo = regexValue.findall(string)
我的目标是找到任何三个字母的单词,但由于某种原因,我似乎只得到了“是”而不是“你”。我想这可能是因为两者之间的空间重叠,而且既然空间已经被使用,它就不能成为“你”的一部分。那么,我怎么才能从这样的字符串中只找到三个字母的单词呢?在
但你不能这样做:
findall
查找不重叠的匹配项。一个简单的修复方法是将final\s
改为lookahead;(?=\s)
,但您可能还需要扩展regex来处理初始和最终匹配。在如果这不是一个regex练习,那么在空格上拆分字符串是非常简单的。在
您应该使用单词boundary
(\b\w{3}\b)
如果您不想使用regex,那么Morgan Thrapp建议的答案就足够了。在Demo
相关问题 更多 >
编程相关推荐