Автор Тема: Перл  (Прочетена 2042 пъти)

CadeFoster

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Перл
« -: Nov 20, 2011, 13:34 »
какво не му е наред на тоя regular expression?

Код
GeSHi (Perl):
  1. ~ m/^d{1,3}.d{1,3}.d{1,3}.?*?/

Код:
Nested quantifiers in regex; marked by <-- HERE in m/^d{1,3}.d{1,3}.d{1,3}.?* <-- HERE ?/ at file.pl line 65.

някакви идей?  ???
« Последна редакция: Nov 21, 2011, 01:04 от VladSun »
Активен

CadeFoster

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Re: Перл
« Отговор #1 -: Nov 20, 2011, 13:49 »
Намерих решение

Код
GeSHi (Perl):
  1. ~ m/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/
« Последна редакция: Nov 21, 2011, 01:04 от VladSun »
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Перл
« Отговор #2 -: Nov 20, 2011, 13:59 »
Код
GeSHi (Perl):
  1. \b(?:\d{1,3}\.){3}\d{1,3}\b
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

CadeFoster

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Re: Перл
« Отговор #3 -: Nov 20, 2011, 22:23 »
b2l
Код
GeSHi (Perl):
  1. \b(?:\d{1,3}\.){3}\d{1,3}\b
не работи.

Мислех че сам го налучкал ма не работи и по моя начин  :-[

Това е стария код(или поне из нет-а пише че не важи вече в перл5):

Код
GeSHi (Perl):
  1.  if ($network =~ m/^d{1,3}.d{1,3}.d{1,3}.?*?/) {
  2.  
  3.         #Network form x.y.z.
  4.         $network =~ s/^(d{1,3}.d{1,3}.d{1,3}).*/$1/;
  5.         $network .= ".";
  6.         $out_file = "file" . $network . "txt";
  7.  

Може ли да се конвертира за Перл5 ?

« Последна редакция: Nov 21, 2011, 01:04 от VladSun »
Активен

radoulov

  • Напреднали
  • *****
  • Публикации: 116
    • Профил
Re: Перл
« Отговор #4 -: Nov 21, 2011, 01:03 »
Какво точно съдържа променливата network и какво точно искаш да съвпада с тази regex:
Код
GeSHi (Perl):
  1. ^d{1,3}.d{1,3}.d{1,3}.?*?
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Перл
« Отговор #5 -: Nov 21, 2011, 10:59 »
Какво точно съдържа променливата network и какво точно искаш да съвпада с тази regex:
Код
GeSHi (Perl):
  1. ^d{1,3}.d{1,3}.d{1,3}.?*?

Е то се вижда - IP адрес,
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

CadeFoster

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Re: Перл
« Отговор #6 -: Nov 22, 2011, 19:27 »
мрежова маска
Активен

Demayl

  • Напреднали
  • *****
  • Публикации: 104
  • Distribution: XUbuntu,FreeBSD
  • Window Manager: Xfce
    • Профил
    • WWW
Re: Перл
« Отговор #7 -: Nov 22, 2011, 20:13 »
m/^d{1,3}.d{1,3}.d{1,3}.?*?/
...изтрито... 192.168.0.5 ...изтрито... /^\d{1,3}\.\d{1,3}\.\d{1,3}\,\d{1,3}$/ ...изтрито... s/^(\d{1,3}\.\d{1,3}\.\d{1,3})\,\d{1,3}$/$1/s

Редактирано, съгласно т. 3 от правилата на форума
bop_bop_mara
« Последна редакция: Nov 22, 2011, 20:18 от bop_bop_mara »
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Перл
« Отговор #8 -: Nov 22, 2011, 20:26 »
мрежова маска

Ами тогава регулярния ти израз не е правилен, защото този:
Код
GeSHi (Perl):
  1. ^(d{1,3}.d{1,3}.d{1,3}).*/$

Защото така мачваш и: 1.2.3.4
« Последна редакция: Nov 22, 2011, 20:32 от b2l »
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше