191 / 29 / 8
Регистрация: 15.09.2011
Сообщений: 426
1

Регулярные выражения

15.01.2012, 00:48. Показов 2103. Ответов 5
Метки нет (Все метки)

Какое регулярное выражение подойдет для вытаскивания ip адреса из этого кода:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Мой ip, узнать свой</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <meta name="description" content="Узнать свой IP-адрес в интернете" />
    <meta name="keywords" content="мой ip узнать свой адрес" />
    <link href="css/style.css" type="text/css" rel="stylesheet" />
    <link rel="shortcut icon" href="http://getmyip.ru/favicon.gif" />
    <link rel="icon" type="image/x-icon" href="http://getmyip.ru/favicon.gif" />
    <script type="text/javascript" src="/js/script.js"></script>
    </head>
<body>
    <div id="main">
        <!-- Header -->
        <div id="header">
            <div class="hl">
                <a href="http://www.dextra.ru"><img src="/pic/logo.jpg" alt="Dextra" title="Dextra" /></a>
                            </div>
                    </div>
        <!-- Header End -->
        
        <div id="content">
            <div class="text">
            <h1>Мой IP-адрес</h1>
            <br style="clear:both;">
 
            <center>
            <table border="0" cellpadding="5" cellspacing="1" id="data">
                                    <tr>
                    <td align="center" valign="middle" style="padding:20px;" class="rd">109.169.251.214</td>
                  </tr>
            </table>
            </center>
 
            <br style="clear:both;">
            <span style="color: rgb(169, 169, 169);">* В современной сети Интернет используется IP четвёртой версии (известный как IPv4). В протоколе IP этой версии каждому узлу сети ставится в соответствие IP-адрес длиной 4 октета (или байта). При этом компьютеры в подсетях объединяются общими начальными битами адреса. Количество этих бит, общее для данной подсети, называется маской подсети (ранее использовалось деление пространства адресов по классам - A, B, C; класс сети определялся диапазоном значений старшего октета и определял число адресуемых узлов в данной сети, сейчас используется бесклассовая адресация).</span>            </div>
        </div>
        
        
        <!-- Footer -->
        <div id="footer">
                        <a href="" target=""><img src="/pics/banners/" alt="" title="" /></a>
        </div>
        <!-- Footer End-->
    </div>
    <center>
            
              <!--LiveInternet counter--><script type="text/javascript"><!--
              document.write("<a href='http://www.liveinternet.ru/click' "+
              "target=_blank><img src='http://counter.yadro.ru/hit?t26.1;r"+
              escape(document.referrer)+((typeof(screen)=="undefined")?"":
              ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
              screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
              ";"+Math.random()+
              "' alt='' title='LiveInternet: показано число посетителей за"+
              " сегодня' "+
              "border=0 width=88 height=15><\/a>")//--></script><!--/LiveInternet-->
 
    </center>
</body>
</html>
А вот сам код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button1Click(Sender: TObject);
var reg:TRegExpr;
list:string;
begin
memo1.Clear;
reg:=TRegExpr.Create;
list:=IdHTTP1.Get('http://getmyip.ru/');
reg.Expression:='выражение';
if reg.Exec(list) then
repeat
memo1.Lines.Add(reg.Match[2]);
until not reg.ExecNext;
reg.Free;
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2012, 00:48
Ответы с готовыми решениями:

Регулярные выражения
Добрый день, у меня возникла задача написать проверку для строки. В строковой переменной...

Регулярные выражения
имеется текст: Карусельспутниковые Animal PlanetDiscovery ChannelDiscovery ScienceDiscovery...

Delphi!? Регулярные выражения?
procedure TForm1.Button2Click(Sender: TObject); var s:string; i:integer; danye:array of...

есть ли в Delphi регулярные выражения?
есть ли в Delphi регулярные выражения?

5
1300 / 706 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
15.01.2012, 02:55 2
вот посмотри
Вложения
Тип файла: zip регулярки.zip (1.26 Мб, 114 просмотров)
0
191 / 29 / 8
Регистрация: 15.09.2011
Сообщений: 426
15.01.2012, 10:28  [ТС] 3
Цитата Сообщение от Alex_pac Посмотреть сообщение
вот посмотри
Блин у меня этот код не пашет. Компонентов нет...
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
15.01.2012, 15:28 4
hacker_007,
зачем тебе тут цикл until not reg.ExecNext; если ip один?
регулярка может быть такая:
Delphi
1
'(class="rd">)([^<]+)'
1
1300 / 706 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
15.01.2012, 16:25 5
Блин у меня этот код не пашет. Компонентов нет...
просто на delphi XE писалось
1
191 / 29 / 8
Регистрация: 15.09.2011
Сообщений: 426
15.01.2012, 18:40  [ТС] 6
Цитата Сообщение от anonimus Посмотреть сообщение
hacker_007,
зачем тебе тут цикл until not reg.ExecNext; если ip один?
регулярка может быть такая:
Delphi
1
'(class="rd">)([^<]+)'
Спасибо) Обратил внимание на замечание и исправил.)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2012, 18:40
Помогаю со студенческими работами здесь

Регулярные выражения RegExpr, как не заменять, а просто добавить?
как сделать чтоб оно не заменяло, а вставляло регулярку, т.е. то что является рег. выражением, а то...

Delphi и регулярные выражения! Почему ошибка эта постоянно, не понимаю, см. код?
unit unAnal; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Регулярные выражения. Как вот такой код с php перевести на Delphi!?
$file = preg_match_all(&quot;|&lt;tr&gt;&lt;td class='time'&gt;(.*)&lt;/tr&gt;|U&quot;,$file,$frazes); $myper = array(); ...

Регулярные выражения
Доброго времени суток, камрады! Вопрос типа: есть много данных - это числа формата 0,00 в Excel....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru