我正在尝试仅在特定字符串后捕获1个单词。例如,
import re
my_string="I love Apple juice, it is delicious."
print(my_string.split("I love",1)[-1])
我得到结果:
Apple juice, it is delicious.
但是我只需要1个字,此后什么也不需要。
Apple
如何删除Apple之后的所有物品?我尝试了rstrip
,但它不是最有效的方法。谢谢。
答案 0 :(得分:2)
只需使用str.split
两次,并确保使用maxsplit
避免不必要的分裂:
my_string = 'I love Apple juice, it is delicious.'
res = my_string.split('I love', maxsplit=1)[-1]\
.split(maxsplit=1)[0]
'Apple'
答案 1 :(得分:2)
我会在您的正则表达式中尝试使用积极的表情:
>>> import re
>>> my_string="I love Apple juice, it is delicious."
>>> re.search('(?<=I love )(\w+)', my_string).group(1)
'Apple'
答案 2 :(得分:0)
您还可以尝试使用积极向上的Regex组构造:
match = re.search('(?<=I love\s)\S*', 'I love Apple juice, it is delicious.')
编辑:我想念您的问题,并更新了我的模式以符合您的需求。
答案 3 :(得分:0)
有很多方法可以做到这一点。您可以以最简单的形式进行操作:
>>> s = 'Apple juice, it is delicious.'
>>> s.split()[0]
'Apple'
或使用功能齐全的正则表达式(import re
)
>>> re.search(r'^[\S]*(?!\S\s)', s)
'Apple'