Бесплатные снипеты на заказ

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43
привет!
Надеюсь, кто-то может помочь пожалуйста. :-)

Как вычислить, сколько раз определенное слово или символ появляется в тексте в переменной?
Например, сколько раз "<p> " появляется в переменной?

Возможно ли это в C# или с помощью какого-либо метода обработки текста?

Спасибо!
Код:
string inputText="<p>page<p>text</p></p>";
string regPattern = @"\<p\>";
return Regex.Matches(inputText,regPattern).Count;
 
  • Спасибо
Реакции: KitKat21 и orka13

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
Добрый день! Код считает количество строк содержащих слова Санкт-Петербург и Москва. А как сделать чтобы считало количество строк не содержащих эти слова. Спасибо.
Код:
string text = string.Join("\r\n", project.Lists["Список"]);
string reg = @"(?i)(Санкт-Петербург|Москва)";
project.Variables["stet"].Value=Regex.Matches(text,reg).Count.ToString();
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 163
Благодарностей
2 163
Баллы
113
Добрый день! Код считает количество строк содержащих слова Санкт-Петербург и Москва. А как сделать чтобы считало количество строк не содержащих эти слова. Спасибо.
Код:
string text = string.Join("\r\n", project.Lists["Список"]);
string reg = @"(?i)(Санкт-Петербург|Москва)";
project.Variables["stet"].Value=Regex.Matches(text,reg).Count.ToString();
Так отними от общего количества строк в списке те что нашло:
C#:
string text = string.Join("\r\n", project.Lists["Список"]);
string reg = @"(?i)(Санкт-Петербург|Москва)";
project.Variables["stet"].Value = (project.Lists["Список"].Count - Regex.Matches(text,reg).Count).ToString();
 
  • Спасибо
Реакции: KitKat21

orka13

Client
Регистрация
07.05.2015
Сообщения
2 163
Благодарностей
2 163
Баллы
113
привет!
Надеюсь, кто-то может помочь пожалуйста. :-)

Как вычислить, сколько раз определенное слово или символ появляется в тексте в переменной?
Например, сколько раз "<p> " появляется в переменной?

Возможно ли это в C# или с помощью какого-либо метода обработки текста?

Спасибо!
ответ от evgen2208 подойдет, но придется постоянно экранировать спецсимволы в регулярке. Или можно автоматом экранировать (Regex.Escape), но я не уверен в надежности такого решения:
C#:
string inputText="<p>page<p>text</p></p>";
string regPattern = "<p>";
regPattern = Regex.Escape(regPattern);
return Regex.Matches(inputText,regPattern).Count;
Сам заинтересовался и начал гуглить решения без регулярок, вот самое быстрое:
C#:
string inputText="<p>page<p>text</p></p>";
string Pattern = "<p>";
return (inputText.Length - inputText.Replace(Pattern, "").Length) / Pattern.Length;
Но оно в 3 раза медленнее срабатывает на очень крупных текстах (тестировал на 30К тексте).
Материал из гугла по теме:
https://ru.stackoverflow.com/questions/67904/Количество-вхождений-подстроки/67905#67905
http://www.cyberforum.ru/csharp-beginners/thread197645.html
 
Последнее редактирование:
  • Спасибо
Реакции: KitKat21 и Sanekk

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
Так отними от общего количества строк в списке те что нашло:
C#:
string text = string.Join("\r\n", project.Lists["Список"]);
string reg = @"(?i)(Санкт-Петербург|Москва)";
project.Variables["stet"].Value = (project.Lists["Список"].Count - Regex.Matches(text,reg).Count).ToString();
Сделал пока вот так, вроде работает
Код:
string text = string.Join("\r\n", project.Lists["Список"]);
string reg = @"(?<=(^|\r\n))((?!(Санкт-Петербург|Москва|Минск)).)*(?=($|\r\n))";
project.Variables["stet"].Value = (project.Lists["Список"].Count - Regex.Matches(text,reg).Count).ToString();
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
снова кто круче. через линк нук давайте способ, там 0.1 секунда
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 163
Благодарностей
2 163
Баллы
113
снова кто круче. через линк нук давайте способ, там 0.1 секунда
я пас, даже не знаю что это такое, гугл не помог :-). Да и скорость обработки играет роль только для оптимизации с ооочень крупными отрывками текста. Я чисто для себя замерял. У меня в тесте на 30К символов было 33 миллисекунды с регуляркой против 105 милисекунд через обычный ".Replace".
 
  • Спасибо
Реакции: KitKat21

KitKat21

Client
Регистрация
02.05.2017
Сообщения
255
Благодарностей
187
Баллы
43
@sergodjan66, @evgen2208, @orka13


Большое спасибо! )) Все эти решения отлично работают! Интересно видеть разные способы достижения результата.

Вы все очень помогли, спасибо!)
 

KitKat21

Client
Регистрация
02.05.2017
Сообщения
255
Благодарностей
187
Баллы
43
Можно ли получить количество нескольких элементов одновременно, используя один C# ?
Например, подсчитайте, сколько раз в общей сложности <li> <p> и <ul> появляются в тексте?
Я попытался использовать разделитель для поиска, но он возвращает 0 результатов. "<p>|<ul>|<li>"
 

KitKat21

Client
Регистрация
02.05.2017
Сообщения
255
Благодарностей
187
Баллы
43
Можно ли получить количество нескольких элементов одновременно, используя один C# ?
Например, подсчитайте, сколько раз в общей сложности <li> <p> и <ul> появляются в тексте?
Я попытался использовать разделитель для поиска, но он возвращает 0 результатов. "<p>|<ul>|<li>"
Ah, Он работает с "@" Перед.


string inputText=(project.Variables["Post_Content"].Value);
string regPattern = @"<p>|<li>|<ul>";
return Regex.Matches(inputText,regPattern).Count;

(Не уверен, как это сделать с кодом by orka13)
 
Последнее редактирование:

orka13

Client
Регистрация
07.05.2015
Сообщения
2 163
Благодарностей
2 163
Баллы
113

LiderIT

Client
Регистрация
21.10.2017
Сообщения
122
Благодарностей
14
Баллы
18
Привет, отправляю Get запрос - https://site.ru и сразу за ним в контроле трафика вижу что сайт отправляет пост запрос (ниже скрин скину) и мне нужно получить параметры етого пост запроса, как такое можно реализовать?


Шаблон не полностью на пост гет , с визуализацией заходит на сайт
 
Последнее редактирование:

Vladimir71

Client
Регистрация
21.10.2015
Сообщения
95
Благодарностей
38
Баллы
18
Здравствуйте! Не подскажите как можно разделить цифры 12345, так чтобы каждая цифра лежала в своей переменной.
Пример
a - 1
b - 2
c - 3
d - 4
e - 5

Если есть регулярка, поделитесь пожалуйста.
 

Vladimir71

Client
Регистрация
21.10.2015
Сообщения
95
Благодарностей
38
Баллы
18
Вроде бы сделал на кубиках , кому надо берите.
Если есть возможность сделать еще меньше кубиков, поделитесь пожалуйста. Просто ради развития.
 

Вложения

doc

Client
Регистрация
30.03.2012
Сообщения
8 605
Благодарностей
4 596
Баллы
113
  • Спасибо
Реакции: one

Vladimir71

Client
Регистрация
21.10.2015
Сообщения
95
Благодарностей
38
Баллы
18

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43
Подскажите, как в дате 2019/06/9 заменить 06 на 6?
 

Gefest

Client
Регистрация
30.04.2016
Сообщения
73
Благодарностей
14
Баллы
8
Товарищи, помогите начинающему)

Как связать переменную и список который лежит НЕ в каталоге с шаблоном
Во входных настройках мы указываем путь до списка - в переменную списка ложится путь до него
И как связать другую переменную с этим путем до него ?

Это всё в C# конечно же)
 

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
196
Баллы
43
Товарищи, помогите начинающему)

Как связать переменную и список который лежит НЕ в каталоге с шаблоном
Во входных настройках мы указываем путь до списка - в переменную списка ложится путь до него
И как связать другую переменную с этим путем до него ?

Это всё в C# конечно же)
Код:
//Присваиваем переменной путь к файлу
string strFilePath = @"c:\file.txt";
//Создаём объект класса IZennoList, привязываемся к списку уровня проекта (исходный список)
IZennoList lstTest = project.Lists["Список 1"];
lstTest.Bind(strFilePath);
Если в список будут вноситься изменения то эти галочки включить
 
  • Спасибо
Реакции: Gefest

Gefest

Client
Регистрация
30.04.2016
Сообщения
73
Благодарностей
14
Баллы
8
Код:
//Присваиваем переменной путь к файлу
string strFilePath = @"c:\file.txt";
//Создаём объект класса IZennoList, привязываемся к списку уровня проекта (исходный список)
IZennoList lstTest = project.Lists["Список 1"];
lstTest.Bind(strFilePath);
Если в список будут вноситься изменения то эти галочки включить
Вторая часть понятна, первая не очень: почему путь до файла c:\file.txt, если в настройках проекта он может быть любой ?
http://joxi.ru/5mdkdlEt3Ll44r

Прогнал код - не вышло привязать, файл лежит на рабочем столе, так же может лежать в любой другой папке
 

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
196
Баллы
43
string strFilePath = @"c:\file.txt"; замените на string strFilePath = project.Variables["PeremennayaSpisok"].Value;

забегая вперед что вы не разобрались , переменную замените на свою а то опять работать не будет. (никто ж не вангует что у вас там )
 
  • Спасибо
Реакции: Gefest

Gefest

Client
Регистрация
30.04.2016
Сообщения
73
Благодарностей
14
Баллы
8
string strFilePath = @"c:\file.txt"; замените на string strFilePath = project.Variables["PeremennayaSpisok"].Value;

забегая вперед что вы не разобрались , переменную замените на свою а то опять работать не будет. (никто ж не вангует что у вас там )
Благодарю) Теперь всё работает и понятно!)
 

AleXPrischepA

Client
Регистрация
06.05.2015
Сообщения
194
Благодарностей
90
Баллы
28
Люди добрые... подскажите... Есть вот такой снипет для полуавтоматических шаблонов.

Код:
// сообщение
System.Windows.Forms.DialogResult result = System.Windows.Forms.MessageBox.Show("Нажмите \"Да\" или \"Нет\"", "Сделайте выбор", System.Windows.Forms.MessageBoxButtons.YesNo);
// выбор при нажатии да
if (result == System.Windows.Forms.DialogResult.Yes) return 1;
return 0;
Как будет выглядеть снипет для вывода своего набора кнопок!?

Возможно уже спрашивали... если да не пинайте сильно...

Спасибо!!!
 

GREXA

Client
Регистрация
16.09.2017
Сообщения
276
Благодарностей
103
Баллы
43
Есть текст такого вида
87075151313:ma2satqwerty:658d91fe423dbd8351fd89a8868d872c0166752eb55f8e49d6fa4cca60fca0c024ad77a25b265c01298d2:179193958
Нужно получить только 658d91fe423dbd8351fd89a8868d872c0166752eb55f8e49d6fa4cca60fca0c024ad77a25b265c01298d2:179193958
Подскажите пожалуйста сниппет которые пропускает первые две :
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Есть текст такого вида
87075151313:ma2satqwerty:658d91fe423dbd8351fd89a8868d872c0166752eb55f8e49d6fa4cca60fca0c024ad77a25b265c01298d2:179193958
Нужно получить только 658d91fe423dbd8351fd89a8868d872c0166752eb55f8e49d6fa4cca60fca0c024ad77a25b265c01298d2:179193958
Подскажите пожалуйста сниппет которые пропускает первые две :
Попробуйте такой регуляркой.
Код:
(?<=.*:.*:).*
 

MrOliver

Новичок
Регистрация
27.06.2019
Сообщения
22
Благодарностей
0
Баллы
1
помогите со снипетом
Всем привет нужен совет бывалых)
В общем в одном из моих проектов столкнулся с проблемой в виде не коретной дате рождения не могу коректно составить регулярное выражение
допустим вид лога такой 5/5/1981 9/25/1993 а надо 05/05/1981 09/25/1993 тоесть нужно дописать нули что бы было коректное значение
после получения коретного значения его нужно грамотно заполнить
проблема в том что форма ввода постоянно меняется допустим с dd/mm/year на mm/dd/year

Может есть человек кто сможет дать готовый код? естественно не просто так. С готовым кодом мне как (человеку далекому от кодинга) будет легче влится и понять
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
помогите со снипетом
Всем привет нужен совет бывалых)
В общем в одном из моих проектов столкнулся с проблемой в виде не коретной дате рождения не могу коректно составить регулярное выражение
допустим вид лога такой 5/5/1981 9/25/1993 а надо 05/05/1981 09/25/1993 тоесть нужно дописать нули что бы было коректное значение
после получения коретного значения его нужно грамотно заполнить
проблема в том что форма ввода постоянно меняется допустим с dd/mm/year на mm/dd/year

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

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
C#:
var text = "5/5/2019";
var result = "";

string[] arr = text.Split('/');

for (var i = 0; i < arr.Length; i++)
{
    var line = arr[i];
 
    if (line.Length < 2)
    {
        result += "0" + line + "/";
    }
    else
        result += line + "/";
}

return result.Trim('/');
или
Добавляем
using System.Globalization;

C#:
string datestr = "23/9/2019";
string formatsrc1 = "d/m/yyyy";
string formatdst1 = "dd/mm/yyyy";
string formatsrc2 = "m/d/yyyy";
string formatdst2 = "mm/dd/yyyy";

try
{
    DateTime result = DateTime.ParseExact(datestr, formatsrc1, CultureInfo.InvariantCulture);
    return result.ToString(formatdst1).Replace(".", "/");
}
catch
{
    DateTime result = DateTime.ParseExact(datestr, formatsrc2, CultureInfo.InvariantCulture);
    return result.ToString(formatdst2).Replace(".", "/");
}
 
Последнее редактирование:
  • Спасибо
Реакции: MrOliver

iskrakovrov

Client
Регистрация
28.03.2015
Сообщения
532
Благодарностей
171
Баллы
43

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с iskrakovrov какие-либо сделки.

Помогите со сниппетом сбора всей почты с ящика - для рамблера и для Gmail
Здесь на форуме нашел вот такое пешение

Код:
var mail_login = project.Variables["mail_login"].Value;
var mail_pass = project.Variables["mail_pass"].Value;


// download all messages from gmail via IMAP
Tuple<string, string, string, string>[] allMails;
allMails = ZennoPoster.BulkMailDownload(mail_login,
       mail_pass, "imap.gmail.com", 993, true,
       ZennoLab.InterfacesLibrary.Enums.Email.EmailProtocol.IMAP,
       24*100, 100, false);

// loop fo all messages
foreach(Tuple<string, string, string, string> tuple in allMails)
{
    // adding messages to the table called Tabl1
    // tuple.Item1 - sibject, tuple.Item2 - from, tuple.Item3 - html message, tuple.Item4 - text message
      List<string> tmp = new List<string>();
       tmp.Add(tuple.Item1);
       tmp.Add(tuple.Item2);
       tmp.Add(tuple.Item3);
       tmp.Add(tuple.Item4);
       project.Tables["Tabl1"].AddRow(tmp);
}
Таблица само собой есть Tabl1, переменные тоже. mail_login и mail_pass
Отрабатывает - в логе пишет ОК а таблица остается пустой.

В идеале нужны сниппеты под gmail rambler mail.ru yahoo
Готов оплатить помощь.

Логин и пароль верные, если ввести не правильные напишет, ошибка аутентификации.

Заранее спасибо
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Помогите со сниппетом сбора всей почты с ящика - для рамблера и для Gmail
Здесь на форуме нашел вот такое пешение

Код:
var mail_login = project.Variables["mail_login"].Value;
var mail_pass = project.Variables["mail_pass"].Value;


// download all messages from gmail via IMAP
Tuple<string, string, string, string>[] allMails;
allMails = ZennoPoster.BulkMailDownload(mail_login,
       mail_pass, "imap.gmail.com", 993, true,
       ZennoLab.InterfacesLibrary.Enums.Email.EmailProtocol.IMAP,
       24*100, 100, false);

// loop fo all messages
foreach(Tuple<string, string, string, string> tuple in allMails)
{
    // adding messages to the table called Tabl1
    // tuple.Item1 - sibject, tuple.Item2 - from, tuple.Item3 - html message, tuple.Item4 - text message
      List<string> tmp = new List<string>();
       tmp.Add(tuple.Item1);
       tmp.Add(tuple.Item2);
       tmp.Add(tuple.Item3);
       tmp.Add(tuple.Item4);
       project.Tables["Tabl1"].AddRow(tmp);
}
Таблица само собой есть Tabl1, переменные тоже. mail_login и mail_pass
Отрабатывает - в логе пишет ОК а таблица остается пустой.

В идеале нужны сниппеты под gmail rambler mail.ru yahoo
Готов оплатить помощь.

Логин и пароль верные, если ввести не правильные напишет, ошибка аутентификации.

Заранее спасибо
используй сторонюю библиотеку MailKit
 
  • Спасибо
Реакции: iskrakovrov

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)