Прошу помощи с регулярным выражением

bstshell

Client
Регистрация
03.06.2015
Сообщения
56
Благодарностей
4
Баллы
8
Друзья! Регулярные выражения для меня-темный лес, ломаю голову уже второй день, но просвета не видно)

Передо мной стоит задача: от номера телефона отрезать спереди цифры из блока 1 и сзади из блока 2.
Тонкость: в блоке 1 бывают конструкции вида "код страны плюс первые цифры номера(одна или несколько)" например: +7 7 или +992 335 а в логине код страны без плюса, нужно это учесть при "обрезании"

Буду признателен за помощь в составлении регулярного выражения.
 

botovod

Client
Регистрация
04.04.2014
Сообщения
170
Благодарностей
126
Баллы
43
Примерно так, не уверен что работает до сих пор
 

Вложения

  • 46,7 КБ Просмотры: 188

bstshell

Client
Регистрация
03.06.2015
Сообщения
56
Благодарностей
4
Баллы
8
не работает...
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
164
Баллы
43

JackSQ

Client
Регистрация
03.03.2015
Сообщения
32
Благодарностей
9
Баллы
8
Код:
// берем акк из переменной в формате - телефон:пароль

var profile =project.Variables["log_pass"].Value;

// разделяем строку в массиве

string [] profile1 = profile.Split(Convert.ToChar(":"));

//проверяем вылезла ли вообще проверка номера, если да то режем номер и вставляем. для +7 работает, для других не знаю

try
{ var phonenumber = instance.ActiveTab.FindElementByAttribute("input:text","id","code","regexp",0);
   
var trimmed = profile1[0].Substring(1, profile1[0].Length - 3);   
        phonenumber.SetValue(trimmed,"Full");
var    phonenumbersubmit = instance.ActiveTab.FindElementByAttribute("button","id","validate_btn","regexp",0);
    phonenumbersubmit.RiseEvent("click","Full");
    if(instance.ActiveTab.IsBusy)
{
    instance.ActiveTab.WaitDownloading();
}
   
   
}
catch{}

// ждем пока тупой ВК схавает номер

for (int j = 0; j<20; j++)
{
        var secure = instance.ActiveTab.FindElementByAttribute("h1","innertext","Проверка безопасности","text",0);
    if (!secure.IsVoid)
        {
            System .Threading.Thread.Sleep(3000);
        }
       
}
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
var start = "+7 908";
var end = " 78";
var full_number = "7908xxxx78";
var from_start = Regex.Matches(start, "\\d").Count;
var to_end = Regex.Matches(end, "\\d").Count;
var X = full_number.Substring(from_start, full_number.Length-from_start-to_end);
return X;
 

xturbofox

Client
Регистрация
09.04.2013
Сообщения
34
Благодарностей
4
Баллы
8
Не хочу открывать отдельную тему.
Подскажите, пожалуйста, как выпарсить текст от, например, <'Medved'> до 14-го совпадения <',>

например, что бы из текста:
'adkjvbhak', 'asluhbaodbj', 'Medved', '', '', '', '', 'sdfkiv', 'skvhbskb', '', '', 'р298789', '', '', '', 'AAA', '', '', '',

выпарсилось:
'Medved', '', '', '', '', 'sdfkiv', 'skvhbskb', '', '', 'р298789', '', '', '', 'AAA',

Главное как прописать в регулярке нужное количество совпадений символов <',> после 'Medved' ?
Это необходимо как определяющее условие/значение для парсинга
например 14
 
Последнее редактирование:

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
есть спец топик по регуляркам пишите туда иходный текст и что должно получиться.
 

booldozer

Client
Регистрация
13.02.2011
Сообщения
139
Благодарностей
45
Баллы
28
Здравствуйте, тоже не хочется тему создавать, мне нужно заменить символы - в строке на символ пробела, почитал ман то регуляркам, сделал так а он символ - заменяет на \s
получается: аня\sпила\sчай

 

xturbofox

Client
Регистрация
09.04.2013
Сообщения
34
Благодарностей
4
Баллы
8

booldozer

Client
Регистрация
13.02.2011
Сообщения
139
Благодарностей
45
Баллы
28

booldozer

Client
Регистрация
13.02.2011
Сообщения
139
Благодарностей
45
Баллы
28
Все, разобрался.
 

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