Используйте выражение RegEx для вывода PayPal

У меня проблемы с использованием выражения sed для получения данных, которые мне нужны. Я немного его изучил и попробовал небольшой учебник, но я мог бы помочь. Я чувствую, что я не могу использовать любой

Самое близкое, что я нашел к подобной теме, было " Как напечатать слово после регулярного выражения, но не похожее слово?".

Я пытаюсь разобрать это, чтобы получить информацию:

<table cellpadding=""0"" cellspacing=""0"" border=""0""><tr><td>Product<br>Total: 9.99 CAD<br></td></tr><tr><td><br /> <table cellpadding=""0"" cellspacing=""0"" border=""0"" style=""font-size:10px;""><tr><td colspan=""2""><b style=""color:#777; font size:12px;"">==Payer Info==</b></td></tr><tr><td width=""70""><b style=""color:#777"">First Name</b> </td><td>Greg</td></tr><tr><td><b style=""color:#777"">Last Name</b> </td><td>Allan</td></tr><tr><td><b style=""color:#777"">E-Mail</b></td><td>gregoryallan@me.com</td></tr></table></td></tr></table>

В идеале из этого я хотел бы получить имена людей. Я должен сделать выражение, которое следует до > перед именем, а затем захватить эту переменную.

$ sed -n 's/^.*[Payer Info] -- grab name and stop when you hit </td>

Я вводил в заблуждение, потому что подразумевал, что делаю это в терминале. Который был моей первой целью. Но теперь мне нужно использовать этот RegEx в скрипте Google Apps. Я предполагал, что это будет похоже - и это не так. Очень жаль всех тех, кого я ввел в заблуждение.

2 ответа

Это может сработать (при условии, что формат всегда точно такой же, как в вашем примере):

sed -e 's/^.*First Name<\/b> <\/td><td>\([^<]*\).*$/\1/g' sed_sample

Здесь я вытащил вам имя (Грег в вашем случае):

sed 's_^.*First Name[^d]*d>[^>]*>\([A-Za-z]*\).*_\1_'

Вы можете легко изменить его, чтобы получить другие поля.

Второе имя:

sed 's_^.*Last Name[^d]*d>[^>]*>\([A-Za-z]*\).*_\1_'

Эл. адрес:

sed 's_^.*E-Mail[^d]*d>[^>]*>\([A-Za-z@.]*\).*_\1_'

Внутри скрипта вы можете использовать что-то вроде:

NAME = $ (echo $ STRING | sed xxx)

где вы заменяете xxx командами из sed.

Есть много других возможностей для захвата результатов процесса внутри скрипта.

Другие вопросы по тегам