Python正则表达式获取(任何)字符串中的最后一个单词

时间:2020-09-16 14:59:23

标签: python-3.x regex string

我的目标是获取字符串的最后一个单词,无论单词是什么。

通过很多试验和错误,我对下面的代码有点幸运,因为我尝试使用\ W +代替\ w +并获得了可以使用的结果。

但是我的实际代码(您在这里看不到的代码)有点混乱,所以我的问题是;用来获得最后一个单词或两个单词的正确的编译正则表达式是什么?

谢谢!

import re

var = ' hello my name is eddie   '

r = re.compile(r'\S+\W+$')
r2 = r.findall(var)
print(r2)

#result ['eddie   ']

1 个答案:

答案 0 :(得分:1)

使用

import re
var = ' hello my name is eddie   '
r_last_word = re.compile(r'\S+(?=\s*$)')
r_last_but_one = re.compile(r'\S+(?=\s+\S+\s*$)')
print(r_last_word.findall(var))
print(r_last_but_one.findall(var))

结果:

['eddie']
['is']

请参见proof

\S+(?=\s*$)-一个或多个非空格字符,在字符串末尾之后可能具有可选的空格。

\S+(?=\s+\S+\s*$)-一个或多个非空白字符,可能具有一个或多个空白字符,一个或多个非空白字符,以及直到字符串末尾的可选空白。

相关问题