@Fox said in Помогите с регуляркой:
. \1
Сработало. Большое спасибо!
У меня есть такой текст в переменной:
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(.+)
Последние регулярки в конструкторе работают, но в БАС ни в какую. В чем может быть проблема, не пойму. Помогите плиз.
Самый простой способ решить проблему \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 said in Проблема с переносами строк:
(?:.|\n)
Регулярка (<div>.+<br>(?:.|\n)<a\ href="read-sms.php?phone=\d{7,15}?")
Работает в конструкторе и не работает в BASe
Код страницы 0_1496582596717_saved_content
@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');
@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-запрос на неё же?
@Viktor \s - означает пробелы (включая переносы строки), * - означает захватить максимально возможно пробелов (жадный алгоритм), ? - означает остановится сразу, как будет найден следующий символ "<" (не жадный алгоритм).
Так же получение имён и фамилий на сайте. Можно отправлять post-запросы на сайт и сразу же получать ответ. Хотя в разы проще тупо отдельным проектом зациклить и получить сразу несколько тысяч Имён и Фамилий, сохранить его в текстовый документ и использовать в регере через ресурс.