Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript: RegExp
Войти
Регистрация
Восстановить пароль
 
3draven
1 / 1 / 0
Регистрация: 06.04.2013
Сообщений: 17
1

Подскажите, как найти ip, и следующий за ним через произвольное число символов порт?

05.04.2014, 19:59. Просмотров 442. Ответов 9
Метки нет (Все метки)

Ковырял себе утилитку парсер для грабежа открытых прокси списков (блокировки не дремлют, а хочется удобства). В общем надо в таком тексте:

<font class=«spy14»>118.174.149.118<script type=«text/javascript»>document.write(«<font class=spy2>:<\/font>»+(Zero7NineSix^One5Seven)+(One2FiveOne^TwoSixTwo)+(Zero7NineSix^One5Seven)+(One2FiveOne^TwoSixTwo))</script><font class=«spy2»>:</font>8080</font>
Найти ip адрес и порт, превратив это все в стандартный iport Пишу регулярку:

([0-9]{1,3}\.){3}[0-9]{1,3}(?:[\s\S]*)[0-9]{2,4}

Он находит все начиная с 118.174.149.118 и заканчивая 8080. А как же "?:" то есть «найти и забыть»? То, что ip в регулярке может быть и не валидным мне безразлично, надо что бы хоть как то работало. В общем подскажите решение.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2014, 19:59
Ответы с готовыми решениями:

Найти макс. элемент следующий за ним
Всем привет) Вот задачка есть. 1) Распечатать массив. 2)Найти мин. элемент. 3)...

подскажите, как найти следующий за максимальным элемент массива?
нужно найти второй по величине, т.е следующий за максимальным, элемент массива...

Подскажите пожалуйста как получить ответ от устройства через COM порт
Всем привет. Встал вопрос работы с устройством на COM порту. static...

Подскажите как отправить пакет 10 байт на устройство через com порт
Из меня программист некудышный.. что то получается отправить на ком порт из...

Найти пробел в строке и удалить следующий за ним символ
Помогите, пожалуйста. Как в делфи найти пробел в строке и удалить следующий за...

9
newJS
2397 / 1070 / 307
Регистрация: 23.06.2011
Сообщений: 3,330
05.04.2014, 21:51 2
это
Javascript
1
(?:[\s\S]*)
заменить на
Javascript
1
.*?
можно угловые скобки добавить, по ним легче будет отделить мух от котлет

(?:) это группировка без запоминания, а не «найти и забыть», я так понимаю «найти и забыть»===проигнорировать?
что регулярке сказано найти, то она и нашла, ей сказали найти все что между вот таким хитрым числом и таким хитрым числом
не совсем понятно как ищется(кода нет) и что нужно получить(в каком виде), возможно нужно эти числа искать отдельно, или попробовать фокус со скобками, или есть еще какой вариант
0
3draven
1 / 1 / 0
Регистрация: 06.04.2013
Сообщений: 17
05.04.2014, 22:04  [ТС] 3
.*? я пробовал, не сработало.

Решил так:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var re = /((?:[0-9]{1,3}\.){3}[0-9]{1,3})|([0-9]{2,4})/gm;
var newstr = document.documentElement.innerHTML.match(re);
var ip="";
var ipPattern=/([0-9]{1,3}\.){3}[0-9]{1,3}/;
var portPattern=/[0-9]{2,4}/;
var cur;
var adresses={};
 
alert(newstr);
 
function parse(i, index, array) {    
    cur=i.replace(/<|>/gm, '')
    if(ipPattern.test(cur)){
        ip=cur;
    }else{
        if(ipPattern.test(ip) && portPattern.test(cur)){
            adresses[ip]=cur;
        }   
        ip="";     
    }
}
 
newstr.forEach(parse);
alert(JSON.stringify(adresses));
Так и не сумел одной регуляркой обойтись.

Я на js до сих пор никогда не писал, только на яве и С/С++ подобных. Методом тыка изучаю, просто на досуге
Немного не по теме, но очень надо Чем js в firefox отлаживать когда расширение пишешь к firefox?
0
Vovan-VE
13161 / 6546 / 1038
Регистрация: 10.01.2008
Сообщений: 15,070
06.04.2014, 06:15 4

Не по теме:

Цитата Сообщение от newJS Посмотреть сообщение
заменить на
Точка не совпадает с символом "\n", и нет модификатора, который этим управляет.


Может, между ipшником и портом надо искать не-цифры \D+ ?
0
GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
06.04.2014, 07:12 5
насчет \D+ вполне логично и наиболее правильно

2 3draven:
но, чтобы между ip и портом не было двух-четырех цифр
а то насчет <font class=spy2> немного подозрительные взгляды падают - вдруг еще одна цифра появится
0
newJS
2397 / 1070 / 307
Регистрация: 23.06.2011
Сообщений: 3,330
06.04.2014, 07:13 6
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Точка не совпадает с символом "\n", и нет модификатора, который этим управляет.
Так он строку выложил и не сказал что это многострочный текст. Если это многострочный, то проще удалить перевод строк, а потом искать.
0
GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
06.04.2014, 07:32 7
пример для размышления:
([0-9]{1,3}\.){3}[0-9]{1,3}.+?[^(([0-9]{1,3}\.){2})]+[0-9]{2,4}

зы: нуждается в доработке... может еще немного ошибся где...
0
3draven
1 / 1 / 0
Регистрация: 06.04.2013
Сообщений: 17
06.04.2014, 11:51  [ТС] 8
Цитата Сообщение от GalaX Посмотреть сообщение
[^(([0-9]{1,3}\.){2})]+
Вот это не считается регулярным выражением. Говорит, скобки лишние "))". Конструкция .+? вообще в регулярках почему то ни к чему не приводит, либо я не понимаю ее назначени. Я думаю, это пропустить любое количество символов...но она этого не делает. В общем решение на яваскрипте пойдет, не космический корабель запускаю
0
GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
06.04.2014, 15:40 9
Цитата Сообщение от 3draven Посмотреть сообщение
Вот это не считается регулярным выражением.


со скобками все впорядке:
[^(([0-9]{1,3}\.){2})]+
0
3draven
1 / 1 / 0
Регистрация: 06.04.2013
Сообщений: 17
06.04.2014, 15:44  [ТС] 10
Да я их то же считал Но работать не хотит...я в онлайн проверялке регулярок это дело проверяю...и в офлан иногда. Вбил текст, вбли регулярку, говорит в этой конструкции ошибка и показывает на скобки. Если всю конструкцию убрать, то все равно не работает как надо. В общем, судя по всему не судьба. Спасибо за помощь, работает реализация на яваскрипте и пусть работает
0
06.04.2014, 15:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 15:44

Найти пробел в строке и удалить следующий за ним символ
Найти пробел в строке и удалить следующий за ним символ

В каждом столбце матрицы найти минимальный и следующий за ним элемент принять в качестве элемента вектора
В каждом столбце матрицы найти минимальный и следующий за ним элемент принять в...

перечень всех маршрутов через произвольное число городов
Дано DOMAINS маршрут=маршрут(компания,отправление,прибытие,тран спорт)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru