我的目标是获取字符串的最后一个单词,无论单词是什么。
通过很多试验和错误,我对下面的代码有点幸运,因为我尝试使用\ W +代替\ w +并获得了可以使用的结果。
但是我的实际代码(您在这里看不到的代码)有点混乱,所以我的问题是;用来获得最后一个单词或两个单词的正确的编译正则表达式是什么?
谢谢!
import re
var = ' hello my name is eddie '
r = re.compile(r'\S+\W+$')
r2 = r.findall(var)
print(r2)
#result ['eddie ']
答案 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*$)
-一个或多个非空白字符,可能具有一个或多个空白字符,一个或多个非空白字符,以及直到字符串末尾的可选空白。