Кибор » Кибор - Интегрированная среда разработки ботов » Предложения по программе » Работа со строками и регулярные выражения

Страниц (1): [1]
 

1. Skycrew - 11 Ноября, 2014 - 10:18:34 - перейти к сообщению
Столкнулся с тем, что не получается толком поработать с текстом, искать в нем нужные значения и т.д.
Простой пример: из кода веб-страницы получить значение из тега <h1></h1> (заголовок).. Ну вообще любой парсинг сделать невозмлжно Огорчение

Предлагаю добавить функционал:
1) Поиск позиции подстроки в строке.
2) Вырезание подстроки из строки, имея начальную и конечную позиции символов.
3) Чтение, запись и стирание заданной строки в текстовом файле.
4) Поиск и замена в тексте по регулярным выражениям. Хотя-бы поиск подстроки с использованием маски "*".
2. Kibor - 11 Ноября, 2014 - 14:51:01 - перейти к сообщению
 Skycrew пишет:
Простой пример: из кода веб-страницы получить значение из тега <h1></h1> (заголовок).. Ну вообще любой парсинг сделать невозмлжно Огорчение


типа этого?

CODE:
string st="из кода веб-страницы получить значение из тега <h1>эт заголовок</h1> (заголовок)..";
char ch[999];
int siz;
string zg="";
string nozg="";
strcpy(#ch[0],st);
siz=size(#ch[0]);

for (int n=0; n<siz+3; n++)
{
if (ch[n]=='<' && ch[n+1]=='h' && ch[n+2]=='1' && ch[n+3]=='>')goto d;
nozg=nozg+ch[n];
}
goto ex;
d:;
for (int n1=n+4; n1<siz+4; n1++)
{
if (ch[n1]=='<' &&ch[n1+1]=='/' && ch[n1+2]=='h' && ch[n1+3]=='1' && ch[n1+4]=='>')goto d1;
zg=zg+ch[n1];
}
goto ex;
d1:;

for (int n2=n1+5; n2<siz; n2++)
{
nozg=nozg+ch[n2];
}

messagebox (zg+" = позиция "+format(n+5)+" позиция "+format(n1));
messagebox (nozg);// эт вырезан
ex:;


если повозиться можно остальное сделать скриптом.
3. Skycrew - 12 Ноября, 2014 - 13:52:58 - перейти к сообщению
 Kibor пишет:

если повозиться можно остальное сделать скриптом.

Спасибо за скрипт!
В целом конечно придется основательно поплясать с бубном, чтобы эмулировать регулярные выражения для нормального парсера, но как говорится и на том.. Закатив глазки
4. Zireael - 13 Марта, 2018 - 18:05:39 - перейти к сообщению
Как там на счёт регулярных выражений?
Хотя бы поиск подстроки в строке.
5. Kibor - 14 Марта, 2018 - 22:23:39 - перейти к сообщению
Сделал.
Поиск подстроки между указанными блоками, удаление указанной подстроки и символов.
Регулярные выражения по моему уж очень запутано для Кибор.
Реализованные функции намного более юзабильные будут тут.
6. Zireael - 18 Марта, 2018 - 17:32:58 - перейти к сообщению
Запутано для пользователей или в плане реализации функции?
Findtext актуальна только при наличии якоря, т. е. известно что написано перед искомым текстом, что бывает не всегда. Не спорю в каких-то случаях пригодится. Но, она никак не поможет если в тексте надо найти, например, дату, номер телефона, емайл, если не известно что перед ними. Точнее поможет разбить текст на слова, но не избавит от дальнейшего парсинга. А парсить проблематично бывает, когда к примеру, formatsn считает что точка это 0.
7. Kibor - 18 Марта, 2018 - 17:37:34 - перейти к сообщению
Эти функции будут переделаны. То есть синтаксис останется, но добавится много команд которые позволят найти что угодно и где угодно.
8. Kibor - 27 Марта, 2018 - 02:28:17 - перейти к сообщению

Powered by ExBB FM 1.0 Final