我想抓住每个在它之前有+的单词
如果我输入字符串:
word anotherword +aspecialword lameword +heythisone +test hello
我希望它返回:
aspecialword heythisone test
答案 0 :(得分:3)
将split
与列表组合
>>> a = 'word anotherword +aspecialword lameword +heythisone +test hello'
>>> [i[1:] for i in a.split() if i[0] == '+']
['aspecialword', 'heythisone', 'test']
答案 1 :(得分:2)
尝试这样:
>>> my_str = "word anotherword +aspecialword lameword +heythisone +test hello"
>>> " ".join(x[1:] for x in my_str.split() if x.startswith("+"))
'aspecialword heythisone test'
str.startswith(前缀[,start [,end]])
如果字符串以前缀开头,则返回True,否则返回False。前缀也可以是要查找的前缀元组。使用可选的启动,测试字符串从该位置开始。使用可选的结尾,停止比较该位置的字符串。
答案 2 :(得分:1)
您可以使用正则表达式。
>>> import re
>>> re.findall(r'(?<=\+)\S+', "word anotherword +aspecialword lameword +heythisone +test hello")
['aspecialword', 'heythisone', 'test']
r'(?<=\+)\S+'
匹配任何前面带加号的非空格字符序列。