function doPost(e) {
var data = JSON.parse(e.postData.contents);
var text = data.message.text;
var id = data.message.chat.id;
var name = data.message.chat.first_name + " " + data.message.chat.last_name;
var answer = "Записано в гугл док";
sendText(id,answer);
SpreadsheetApp.openById(ssId).getSheets()[0].appendRow([new Date(),id,name,text,answer]);
}
таким образом записываю с телеграмма сообщение в гугл таблицу. Сообщения приходят в таком виде:
Имя: юрий
Телефон: 899999
Почта: ya@yandex.ru
Выберите количество комнат: 1-комнатная
Выберите тип отделки: С отделкой
Желаемый способ оплаты: Рассрочка
Как можно обрезать текст и записать только все что находится после двоеточия (1-комнатная), строки Выберите количество комнат. Расположение строки по счету может меняться.
C регулярными выражениями не очень дружу, по этому прошу помощи
Вроде бы так
$str = 'Имя: юрий
Телефон: 899999
Почта: ya@yandex.ru
Выберите количество комнат: 1-комнатная
Выберите тип отделки: С отделкой
Желаемый способ оплаты: Рассрочка';
preg_match_all('{\b\pL+:\s*(.+)\b}u', $str, $arr);
var_dump($arr[1]);
В результате работы кода получится следующая строка:
array (size=6)
0 => 'юрий'
1 => '899999'
2 => 'ya@yandex.ru'
3 => '1-комнатная'
4 => 'С отделкой'
5 => 'Рассрочка'
Далее, если нужно полученный результат преобразовать в строку, и вывести в таблице (как на вашем скрине), то нужно использовать цикл
preg_match_all('{\b\pL+:\s*(.+)\b}u', $str, $arr);
$view = '<table border="1"><tr>';
foreach ($arr[1] as $string) {
$view .= "<td>$string</td>";
}
$view .= '</tr></table>';
echo $view;
$string = 'Имя: юрий
Телефон: 899999
Почта: ya@yandex.ru
Выберите количество комнат: 1-комнатная
Выберите тип отделки: С отделкой
Желаемый способ оплаты: Рассрочка';
preg_match_all('/\:\s(.*)/', $string, $matches);
echo var_dump($matches[1]);
Результат
array(6) {
[0]=>
string(9) "юрий"
[1]=>
string(7) "899999"
[2]=>
string(13) "ya@yandex.ru"
[3]=>
string(21) "1-комнатная"
[4]=>
string(20) "С отделкой"
[5]=>
string(18) "Рассрочка"
}
UPDATE
Посмотрел Google Apps Script. Оказывается там используется только RegExp.exec(). А в RegExp.exec() вы не можете получать все регулярное выражение одновременно. Вам понадобится добавить все отдельно!
function doPost(e) {
var data = JSON.parse(e.postData.contents);
var text = data.message.text;
var id = data.message.chat.id;
var name = data.message.chat.first_name + " " + data.message.chat.last_name;
var answer = "Записано в гугл док";
sendText(id, answer);
var fname = /Имя: (.+)/.exec(text)[1].replace(/(^\s*)|(\s*)$/g, '');
var phone = /Телефон: (.+)/.exec(text)[1].replace(/(^\s*)|(\s*)$/g, '');
var email = /Почта: (.+)/.exec(text)[1].replace(/(^\s*)|(\s*)$/g, '');
var room = /Выберите количество комнат: (.+)/.exec(text)[1].replace(/(^\s*)|(\s*)$/g, '');
var type = /Выберите тип отделки: (.+)/.exec(text)[1].replace(/(^\s*)|(\s*)$/g, '');
var payment = /Желаемый способ оплаты: (.+)/.exec(text)[1].replace(/(^\s*)|(\s*)$/g, '');
SpreadsheetApp.openById(ssId).getSheets()[0].appendRow([new Date(), id, name, answer, fname, phone, email, room, type, payment]);
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости