Здесь я пытаюсь вытащить имена в тексте после совпадения ключевого слова
Keywords = ['customer::name:', '- first name:', 'let me get you to a specialist. please tell us your first name', 'please tell us your first name']
Здесь имя должно быть вытащено после того, как любое ключевое слово встречается в строке
Данные Excel:
str1=
- Selections: U-verse TV > HSC - Inline Auth Uverse
Mindy has left the chat
You are being transferred, please hold...
Customer::Name: jhon henry
str2=
Adam has left the chat
You are being transferred, please hold...
- First Name: jennatee
tGuard Information >> Wireless Number: TG_NOT_FOUND *** Wireless BAN: TG_NOT_FOUND
str3=
Agent::[virtualAssistant.nina]: <div onclick = "window.inqFrame.Application.sendVALinkClicked(event);" >Let me get you to a specialist. Please tell us your first name.</div>
Customer::karl
Once the installation is done, you can expect to receive the e-mail notication regarding all the details.
str4=
Let me get you to a specialist.<br /><br /> Please tell us your first name.</div> *** Customer::Max canon *** Agent::[virtualAssistant.nina]: <div onclick = "window.inqFrame.Application.sendVALinkClicked(even)
Вывод для каждой строки должен быть следующим:
для str1, [out]: Джон Генри.
для str2, [out]: jennatee.
для str3, [out]: karl.
для str4, [out]: Макс канон.
Я пробовал таким способом, но не вышло. Если мой код не имеет отношения к получению результата, как я упоминал выше, пожалуйста, покажите мне другой подход для решения этой проблемы.
str=[str1,str2,str3]
m=re.search(r'[customer::name:|first name|let me get you to a specialist. please tell us your first name|please tell us your first name]', str)
m.groups()
Спасибо и привет
ты можешь попробовать это
#this pattern gives the next word after the match. You can add more match strings if you like
pattern=r'((?<=)(customer::name:|customer::|first name:|please tell us your first name)(.?\w+))'
print (re.findall(pattern,str.lower(string))[0][2])
Ищет ли он только ограниченный набор идентификаторов (имен ключей) или может быть любое имя ключа, за которым следует значение? Я заметил, например,
Agent::[virtualAssistant.nina]
вstr3
- так как он узнает, чтобы этого избежать? Конкретные целевые имена ключей или тип значения, например игнорирование значений, заключенных в квадратные скобки?