Проблема с переносами строк

Поддержка
  • У меня есть такой текст в переменной:

    You may be asked to enter this confirmation code:

    17299

    Мне нужно спарсить 17299. Я воспользовался конструктором регулярных выражений, но он как-то неправильно работает, если в тексте есть переносы строк. Он мне выдал результат:
    You may be asked to enter this confirmation code:(.+)
    Но эта регулярка ни в БАС не работает, ни при проверке в самом конструкторе. Потом я пытался и так
    You may be asked to enter this confirmation code:[\s\S]+?(.+)
    и так
    You may be asked to enter this confirmation code:\s(.+)
    и так
    You may be asked to enter this confirmation code:\n(.+)
    Последние регулярки в конструкторе работают, но в БАС ни в какую. В чем может быть проблема, не пойму. Помогите плиз.

  • @lev

    Самый простой способ решить проблему \d+ - любая последовательность цифр.

    You may be asked to enter this confirmation code:(.+) не работает, потому что по стандарту .+ не может содержать символы переноса строки.

    Это можно исправить заменив .+ на (?:.|\n)+

    Но You may be asked to enter this confirmation code:((?:.|\n)+) будет получать число вместе с предыдущими пробелами.

    Вот самый правильный вариант

    You may be asked to enter this confirmation code:\s+((?:.|\n)+)

  • @support Да, так работает, спасибо.

  • @support said in Проблема с переносами строк:

    (?:.|\n)

    Регулярка (<div>.+<br>(?:.|\n)<a\ href="read-sms.php?phone=\d{7,15}?")
    Работает в конструкторе и не работает в BASe
    Код страницы 0_1496582596717_saved_content

  • @Viktor В конструкторе тоже не работает твоя регулярка. Что нужно в итоговом варианте?

  • @Viktor Походу тебе в итоге нужно получить название страны и телефон?

  • @Viktor Чтобы получить название страны и номер телефона, используй регулярку:

    <div>.*?<br>\s<a href="read-sms\.php\?phone=\d*?"
    

    Затем в выполнить код:

    VAR_2 = (VAR_1).replace(/<div>(.*?)<br>\s<a href="read-sms\.php\?phone=(\d*?)"/g, 'Страна: $1, номер: $2');
    
  • @Fox Спасибо, работает, но только в конструкторе. В БАСе также ничего не извлекает
    0_1496656342672_akkvk=massreger.xml

  • @Viktor Понятно, сработает вот так:

    <div>.*?<br>\s*?<a href="read-sms\.php\?phone=\d*?"
    

    Затем в выполнить код:

    VAR_2 = (VAR_1).replace(/<div>.*?<br>\s*?<a href="read-sms\.php\?phone=\d*?"/g, 'Страна: $1, номер: $2');
    

    А зачем ты сперва загружаешь страницу, а потом используешь get-запрос на неё же?

  • @Fox я ж ее разрабатываю только :) посмотреть, что там, "руками потрогать" )

  • @Fox said in Проблема с переносами строк:

    <div>.?<br>\s?<a href="read-sms.php?phone=\d*?"

    ага, понял принцип. Рандомное количество пробелов, ясно. Спасибо.

  • @Viktor \s - означает пробелы (включая переносы строки), * - означает захватить максимально возможно пробелов (жадный алгоритм), ? - означает остановится сразу, как будет найден следующий символ "<" (не жадный алгоритм).
    Так же получение имён и фамилий на сайте. Можно отправлять post-запросы на сайт и сразу же получать ответ. Хотя в разы проще тупо отдельным проектом зациклить и получить сразу несколько тысяч Имён и Фамилий, сохранить его в текстовый документ и использовать в регере через ресурс.

  • @Fox отличная мысль насчет нескольких тыщ, хотя с post-запросами скорее никак, чем как-нибудь

  • @Fox это вообще здравая мысль получать акки вк с нескольких десятков бесплатных смсочниц? По кругу гоняя запросы к ним в ожидании свежего номерка?

  • @Viktor А почему нет? Только у тебя вскоре вк начнёт запрашивать капчу..

  • @Fox почему? Я ж регистрируюсь все время с разных айпи..

  • @Fox да боюсь, что меня опередили и номера я не дождусь..или там бешеная конкуренция, и номер будет редко..

  • 0 Votes
    5 Posts
    502 Views
  • 0 Votes
    10 Posts
    1257 Views
  • 0 Votes
    6 Posts
    1459 Views
  • 0 Votes
    8 Posts
    3514 Views
  • 0 Votes
    5 Posts
    2992 Views