Экранирование регулярки C#

idleSSS

Новичок
Регистрация
12.02.2019
Сообщения
28
Благодарностей
3
Баллы
3
Помогите пожалуйста экранировать регулярку
var regex6 = new System.Text.RegularExpressions.Regex(@"(?<=ValidationMessages\(\)"\ notbigger=").*(?="\ required=""\ class="ng-pristine\ ng-untouched)");

Что не заэкранированно
\ notbigger="
\ required=
\ class=
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 163
Благодарностей
2 163
Баллы
113
Так как регулярка в оригинале выглядит?
П.С. Если случай единичный, то чтобы не парится проще регулярку в зеновскую переменную прописать, а потом в коде ее вызывать через эту переменную. Типа:
C#:
var regex6 = new System.Text.RegularExpressions.Regex(project.Variables["My_Regex"].Value);
 
  • Спасибо
Реакции: idleSSS и Санёк

idleSSS

Новичок
Регистрация
12.02.2019
Сообщения
28
Благодарностей
3
Баллы
3
Так как регулярка в оригинале выглядит?
П.С. Если случай единичный, то чтобы не парится проще регулярку в зеновскую переменную прописать, а потом в коде ее вызывать через эту переменную. Типа:
C#:
var regex6 = new System.Text.RegularExpressions.Regex(project.Variables["My_Regex"].Value);
Спасибо!
В оригинале выглядит так (?<=ValidationMessages\(\)"\ notbigger=").*(?="\ required=""\ class="ng-pristine\ ng-untouched), в зенке через кубик работает.
А как можно обрезать ненужные символы из переменной??
Код:
HtmlElement h = instance.ActiveTab.FindElementByXPath("//td[text()='Начальная (максимальная) цена контракта']/following-sibling::td[1]", 0);
var h2 = h.GetAttribute("innerHtml");
return h2;
Я получаю такое значение - Выполнение кода C# Результат: 55&nbsp;040,40 руб.
Как мне убрать &nbsp; и руб. Чтобы получилось 5040,40 ??

Знаю что можно как-то через char[] charsToTrim = {'&nbsp;', 'руб.', ' '};
Но как это сделать в коде?
 

idleSSS

Новичок
Регистрация
12.02.2019
Сообщения
28
Благодарностей
3
Баллы
3
Победил это. Нафиг регулярку.

Вот код:

Код:
HtmlElement NMCK = instance.ActiveTab.FindElementByXPath("//td[text()='Начальная (максимальная) цена контракта']/following-sibling::td[1]", 0);
var NMCKzhach = NMCK.GetAttribute("innerHtml");
char[] charsToTrim = {'&', 'n', 'b', 's', 'p', ';', ' ', 'р', 'у', 'б', '.'};
foreach (char c in charsToTrim)
        {
            NMCKzhach = NMCKzhach.Replace(c.ToString(), "");
        }
return NMCKzhach;
 
Последнее редактирование:

orka13

Client
Регистрация
07.05.2015
Сообщения
2 163
Благодарностей
2 163
Баллы
113
Заменить:
C#:
var h2 = h.GetAttribute("innerHtml");
на:
C#:
var h2 = h.GetAttribute("innerText");
h2 = System.Net.WebUtility.HtmlDecode(h2);
 
  • Спасибо
Реакции: idleSSS

idleSSS

Новичок
Регистрация
12.02.2019
Сообщения
28
Благодарностей
3
Баллы
3
C#:
var h2 = h.GetAttribute("innerText");
h2 = System.Net.WebUtility.HtmlDecode(h2);
Спасибо! Очень крутой код, мне в дальнейшем очень пригодится!!! :az: Но в этом случае "руб." не отрезает (Выполнение кода C# Результат: 55 040,40 руб.), как я понимаю все равно придется прибегнуть к TrimEnd или регулярке?? Или как- то опять можно дописать и реализовать в коротком коде??
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 163
Благодарностей
2 163
Баллы
113
Да. В данном случае без смысла на начальных этапах новичку делать короче код пихая все в одну строку. Нагрузку на процессор ту же понесет, думаю. Это не курсовая, что надо распечатать много строк и листков жалко.
 

idleSSS

Новичок
Регистрация
12.02.2019
Сообщения
28
Благодарностей
3
Баллы
3
Да. В данном случае без смысла на начальных этапах новичку делать короче код пихая все в одну строку. Нагрузку на процессор ту же понесет, думаю. Это не курсовая, что надо распечатать много строк и листков жалко.
В любом случае спасибо! Много полезного узнал) Думаю код , который я выстрадал :D хоть и большой, но кому-то поможет на форуме.
 

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