在字符串中的单词后面找到下一个单词

时间:2017-05-09 15:25:59

标签: python string

我试图在特定单词后面记录单词。例如,让我们说我有一个字符串:

First Name: John
Last Name: Doe
Email: John.Doe@email.com

我想在字符串中搜索关键字,例如"名字:"。然后我想只捕捉它之后的下一个词,在这个例子中是约翰。

我开始使用string.find("First Name:"),但我认为这不是正确的做法。

我可以用一些帮助。大多数例子要么分割字符串,要么在" John"之后保留其他所有内容。我的目标是能够搜索特定关键字的字符串,而不管其位置。

解: 我使用了类似的代码集如下:

search = r"(First Name:)(.)(.+)"
x = re.compile(search)

这给了我" John"没有空格

2 个答案:

答案 0 :(得分:0)

正则表达式是要走的路

import re 
pattern = r"(?:First Name\: ).+\b" 
first_names = re.findall(pattern, mystring)

它会找到前缀(名字:)而不提取r"(?:名字:) 然后提取。+ \ b表示一个单词。或者您可以拆分字符串并在结果列表中进行itterate

my_words = [ x.split()[0] for x in  my_string.split("First Name: ")]

答案 1 :(得分:0)

.find方法是一个良好的开端。 您可以在剩余字符串上使用拆分将结果限制为单个单词。

不使用正则表达式

s = "abc def opx"
q = 'abc'
res = s[s.find(q)+len(q):].split()[0]

res == 'def'