Python-在文本中的特定字符串之后捕获下一个单词

时间:2018-10-29 17:37:13

标签: python string python-3.x

我正在尝试仅在特定字符串后捕获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,但它不是最有效的方法。谢谢。

4 个答案:

答案 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'