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

  • Автор темы Автор темы bstshell
  • Дата начала Дата начала

bstshell

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

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

Буду признателен за помощь в составлении регулярного выражения.
3fd7af9e2c63.png
 
Примерно так, не уверен что работает до сих пор
 

Вложения

  • 2.xmlz
    2.xmlz
    46,7 KB · Просмотры: 270
не работает...
 
Код:
Развернуть Свернуть Копировать
// берем акк из переменной в формате - телефон:пароль

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);
        }
       
}
 
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;
 
Не хочу открывать отдельную тему.
Подскажите, пожалуйста, как выпарсить текст от, например, <'Medved'> до 14-го совпадения <',>

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

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

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

c59fbe71cf23.png
 
Все, разобрался.
 

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