Помогите с регуляркой

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

Tsuk15

Client
Регистрация
25.04.2017
Сообщения
102
Реакции
40
Баллы
28
Всем привет. Нужно почистить список мыл, не все они записаны так как надо. Сделал шаблон, который берет строку из списка и парсит его вот таким регулярным выражением:
Код:
Развернуть Свернуть Копировать
.*?{-Variable.Servers-}|(?<=\ ).*?{-Variable.Servers-}|(?<=:).*?{-Variable.Servers-} //где {-Variable.Servers-} = (@hotmail.com$|@yahoo.com$|@gmail.com$)
То есть перед текстом стоит или пробел или ":" или ни чего не стоит и текст заканчивается на @hotmail.com или @yahoo.com и т.д. В общем как я только эту регулярку не крутил, но у меня получается, что когда перед почтой ни чего не стоит, то она парсится корректно но когда стоит ":" или пробел, то парсится вместе с двоеточием или пробелом как-то так: ":moyemail@gmail.com". Наверно я как-то не правильно условие "или" указываю.
Надеюсь я понятно разъяснился, помогите исправить ошибку или составьте свой вариант.
р.s. Я пробовал и что то типа:
Код:
Развернуть Свернуть Копировать
(.*?|(?<=\ ).*?|(?<=:-).*?){-Variable.Servers-}
но результат тот же:(:(
 
Попробуй такую регулярку
Код:
Развернуть Свернуть Копировать
\b[a-zA-Z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}\b
 
Тоже прошу помощи. Есть код
HTML:
Развернуть Свернуть Копировать
<td class="name">
            <a href="/address/7651688">Вася</a>
          </td>
<td class="number">
            <a href="/address/7651688">17-nb-610-A</a>
          </td>          
<td class="name">
            <a href="/address/1257765">Коля</a>
          </td>
<td class="number">
            <a href="/address/1257765">16-nb-676-B</a>
          </td>        
<td class="name">
            <a href="/address/5678708">Федя</a>
          </td>
<td class="number">
            <a href="/address/5678708">17-nb-294-C</a>
          </td>
Как можно взять только имена?
 
Тоже прошу помощи. Есть код
HTML:
Развернуть Свернуть Копировать
<td class="name">
            <a href="/address/7651688">Вася</a>
          </td>
<td class="number">
            <a href="/address/7651688">17-nb-610-A</a>
          </td>         
<td class="name">
            <a href="/address/1257765">Коля</a>
          </td>
<td class="number">
            <a href="/address/1257765">16-nb-676-B</a>
          </td>       
<td class="name">
            <a href="/address/5678708">Федя</a>
          </td>
<td class="number">
            <a href="/address/5678708">17-nb-294-C</a>
          </td>
Как можно взять только имена?
(?<="name">\s+<a\ href="/address/\d+?">).*?(?=</a>)
 
  • Спасибо
Реакции: xopek2007
Вот это да!!! Работает, волшебным образом все нашло:bp:. Спасибо большое, буду учить матчасть по ссылке выше.
 
\w+([._-]\w+)*@(\w+(-\w+)*\.)+\w+

только копируй без пробела в конце

А как поступить в этом случае
Код:
Развернуть Свернуть Копировать
<li class="list-item ">
   
        <a href="http://m.my.mail.ru/mail/ssp/" class="list-item__link">
   
        <span class="list-item__avatar " style="background-image: url(http://avt-23.foto.mail.ru/mail/ssp/_avatar)" data-user-dir="">
           
        </span>
       
        <span class="list-item__wrap">
            <span class="list-item__text">
                <span class="list-item__title ">Сергей Савич</span>
                <span class="list-item__info">Москва, Россия</span>
               
            </span>
        </span>
       
        </a>
   
</li>

     

<li class="list-item ">
   
        <a href="http://m.my.mail.ru/mail/utg/" class="list-item__link">
   
        <span class="list-item__avatar " style="background-image: url(http://avt-25.foto.mail.ru/mail/utg/_avatar)" data-user-dir="">
           
        </span>
       
        <span class="list-item__wrap">
            <span class="list-item__text">
                <span class="list-item__title ">Алексей Качан</span>
                <span class="list-item__info">50 лет | Москва, Россия</span>
               
            </span>
        </span>
       
        </a>
   
</li>

     

<li class="list-item ">
   
        <a href="http://m.my.mail.ru/mail/chernomyrdin/" class="list-item__link">
   
        <span class="list-item__avatar " style="background-image: url(http://avt-11.foto.mail.ru/mail/chernomyrdin/_avatar)" data-user-dir="">
           
        </span>
       
        <span class="list-item__wrap">
            <span class="list-item__text">
                <span class="list-item__title ">Andrey Chernomyrdin</span>
                <span class="list-item__info">47 лет</span>
               
            </span>
        </span>
        <span class="list-item__date">В сети</span>
       
        </a>
   
</li>

     

<li class="list-item ">
   
        <a href="http://m.my.mail.ru/mail/501/" class="list-item__link">
   
        <span class="list-item__avatar " style="background-image: url(http://avt-12.foto.mail.ru/mail/501/_avatar)" data-user-dir="">
           
        </span>
       
        <span class="list-item__wrap">
            <span class="list-item__text">
                <span class="list-item__title ">Алексей Подосенов</span>
                <span class="list-item__info">Москва, Россия</span>
               
            </span>
        </span>
        <span class="list-item__date"> 4 мая</span>
       
        </a>
   
</li>

     

<li class="list-item ">
   
        <a href="http://m.my.mail.ru/mail/stlp/" class="list-item__link">
   
        <span class="list-item__avatar " style="background-image: url(http://avt-4.foto.mail.ru/mail/stlp/_avatar)" data-user-dir="">
           
        </span>
       
        <span class="list-item__wrap">
            <span class="list-item__text">
                <span class="list-item__title ">Bиктоp Стoлпянcкий</span>
                <span class="list-item__info">40 лет | Свердловск, Луганская обл., Украина</span>
               
            </span>
        </span>
        <span class="list-item__date">22:54</span>
       
        </a>
   
</li>


<li class="list-item ">
   
        <a href="http://m.my.mail.ru/mail/mitus74/" class="list-item__link">
   
        <span class="list-item__avatar " style="background-image: url(http://avt-16.foto.mail.ru/mail/mitus74/_avatar)" data-user-dir="">
           
        </span>
       
        <span class="list-item__wrap">
            <span class="list-item__text">
                <span class="list-item__title ">Дмитрий Крадинов</span>
                <span class="list-item__info">43 года | Тамбов, Тамбовская обл., Россия</span>
               
            </span>
        </span>
        <span class="list-item__date">В сети</span>
       
        </a>
   
</li>
Нужно что бы парсились фрагменты которые начинаются с
Код:
Развернуть Свернуть Копировать
<li class="list-item ">
и заканчивались на
Код:
Развернуть Свернуть Копировать
<span class="list-item__date">В сети</span>
С помощью конструктора сделал такую вот регулярку
Код:
Развернуть Свернуть Копировать
<li\ class="list-item\ ">[\w\W]*?class="list-item__date">В\ сети</span>
Но таким способом парсятся не самые короткие участки совпадения, а длинные совпадения начиная с первого упоминания
Код:
Развернуть Свернуть Копировать
<li class="list-item ">
 
  • Спасибо
Реакции: xopek2007

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