我试图在特定单词后面记录单词。例如,让我们说我有一个字符串:
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"没有空格
答案 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'