PDA

Просмотр полной версии : регулярка


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
Кто шарит?)
ваще столько раз сталкивался и не могу разобраться никак)))
есть у кого норм по ней инфа
так к чему я клоню

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

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
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.";
}

.::BARS::.
30.09.2009, 18:15
$i<=кол-во_строк;
а лучше количество элементов в массиве.....

krypt3r
01.10.2009, 09:10
preg_match_all()