Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   регулярка (https://forum.antichat.xyz/showthread.php?t=144661)

rubik-nerubik 30.09.2009 13:23

регулярка
 
Кто шарит?)
ваще столько раз сталкивался и не могу разобраться никак)))
есть у кого норм по ней инфа
так к чему я клоню

нужна регулярка, которая выводит по маске, типа есть файл:

1122212121
1212313131
nach192.168.1.1konec
48348348
dffsdfsdfsdfdsf
.ewr.we.r.wer...
nach192.168.1.5konec
werewr34324324
234234


надо бы вывести:
192.168.1.1
192.168.1.5


выручайте)

demond 30.09.2009 13:41

Цитата:

Сообщение от rubik-nerubik
Кто шарит?)
ваще столько раз сталкивался и не могу разобраться никак)))
есть у кого норм по ней инфа
так к чему я клоню

нужна регулярка, которая выводит по маске, типа есть файл:

1122212121
1212313131
nach192.168.1.1konec
48348348
dffsdfsdfsdfdsf
.ewr.we.r.wer...
nach192.168.1.5konec
werewr34324324
234234


надо бы вывести:
192.168.1.1
192.168.1.5


выручайте)

Код:

#!/usr/bin/perl
$\ = $/;
open(F, "test.txt") or die"$!";;
while(<F>)
 {
print $1 if(/.*?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*/);
}
 close F;


rubik-nerubik 30.09.2009 13:45

еммм) не уточнил) я про php имел ввиду

Gray_Wolf 30.09.2009 13:50

Регулярка по сути таже...
Код:

/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/
тут можеш потестить http://gskinner.com/RegExr/

rubik-nerubik 30.09.2009 14:09

Код:

if (preg_match ("/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/",$fio,$fio1)) {
    print "$fio1[0]";
} else {
    print "A match was not found.";
}

вот что вышло, как сделать чтобы все находил?
а то показ тока первый

rubik-nerubik 30.09.2009 14:17

http://gskinner.com/RegExr/ как тут вытащить то что я набросал?)

rubik-nerubik 30.09.2009 14:22

ааа берёмсч preg_match_all

krypt3r 30.09.2009 14:32

Можно укоротить регулярку до вида
Код:

/((\d{1,3}\.){3}\d{1,3})/
Более продвинутая регулярка - http://www.pcre.ru/examples/links/text/31/

rubik-nerubik 30.09.2009 18:07

емана одни косяки, как сделать чтобы он проверял во всем тексте и выводил всё! а не один первый встречившийся.

.::BARS::. 30.09.2009 18:13

PHP код:

if (preg_match ("/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/",$fio,$fio1)) {
for (
$i=0$i<=кол-во_строк$i++) {
    print 
"$fio1[$i]";
}
} else {
    print 
"A match was not found.";




Время: 01:38