ocehb: (Default)
поиск ip в тексте


# perl -MRegexp::Common=net -MBenchmark=timethese -de0
DB<1> $str = "a 192.168.1.1 test 192.168.300.1 testii 127.0.0.1 c"
DB<2> sub A () { return $str =~ m|($RE{net}{IPv4})|go; }
DB<3> sub B () { my @ret; while ($str =~ m|(\d+\.\d+\.\d+\.\d+)|g) { \
    unless (grep { $_ > 255 } split /\./,$1) { push @ret,$1; } } \
    return @ret; }
DB<4> timethese (10_000,{'A' => \&A,'B' => \&B})
Benchmark: timing 10000 iterations of A, B...
    A: 36 wallclock secs (34.11 usr +  0.36 sys = 34.47 CPU) @ 290.11/s (n=10000)
    B:  1 wallclock secs ( 0.48 usr +  0.00 sys =  0.48 CPU) @ 20833.33/s (n=10000)


регулярное выражение )
ocehb: (Default)
Есть ряд обозначений, например: DMC df3k Ffgx EZ14 jjk
Нужно из этих выбрать только те что содержат и буквы и цифры.
/[a-z0-9]+/i не подходит.


решение: )
ocehb: (Default)
типа hh:mm:

(?:[01]?[0-9]|2[0-4]):[0-5][0-9]


  DB<3> p "02:00" =~ m#(?:[01]?[0-9]|2[0-4]):[0-5][0-9]#
1
  DB<4> p "02:61" =~ m#(?:[01]?[0-9]|2[0-4]):[0-5][0-9]#

  DB<5> p "02:61" =~ m#(?:[01]?[0-9]|2[0-4]):[0-5][0-9]#

  DB<6> p "02:59" =~ m#(?:[01]?[0-9]|2[0-4]):[0-5][0-9]#
1
  DB<7> p "2:59" =~ m#(?:[01]?[0-9]|2[0-4]):[0-5][0-9]#
1
  DB<8> p "12:59" =~ m#(?:[01]?[0-9]|2[0-4]):[0-5][0-9]#
1
  DB<9> p "22:59" =~ m#(?:[01]?[0-9]|2[0-4]):[0-5][0-9]#
1
ocehb: (Default)
простая задача: разобрать "word && word2 && word3 !=word4"

решения: )
ocehb: (Default)
разобрать строку, типа 'arg1, "arg2, arg3", arg4' на 'arg1', '"arg2, arg3"' и 'arg4'.
аргументы могут быть любыми.

решение: )

Profile

ocehb: (Default)
ocehb

January 2021

S M T W T F S
     12
345 6789
10111213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 15th, 2025 05:25 am
Powered by Dreamwidth Studios