Python 仅当满足特定长度标准时提取单词

Python 仅当满足特定长度标准时提取单词,python,regex,Python,Regex,我需要提取一个单词后的关键字只有当这个词是

我需要提取一个单词后的关键字只有当这个词是<20个字符长

my_regex = re.compile(r'(keyword)\s*(\S{0,20}$))
例如:

keyword anbc123
将提取
关键字
anbc123

然而,下面不应给出任何结果

keyword anbc123nmnmnmnmnmnmnmnmnmnmn
这很有效

但是,由于单词following关键字的长度小于20个字符,下面的方法也应该有效。如何修复正则表达式?我知道$是字符串的结尾

keyword abnc 1234

预期结果:
关键字abnc

您可以使用
\b
代替
$
\b
匹配“单词边界”,即单词的开头或结尾。在这种情况下,它将匹配单词的结尾或字符串的结尾

(keyword)\s*(\S{0,20})\b
请尝试
(关键字)\s*(\s{1,20})(?!\s)
,请参阅。