Visualizzazione dei risultati da 1 a 2 su 2

Discussione: regexp per esperti

  1. #1

    regexp per esperti

    Salve,

    sto programmando un piccolo server che riceverà la classica http request fatta dal client con GET, a seconda della prima linea di richiesta dovrei chiamare una subroutine apposita, a seconda della richiesta potrei ricevere una di queste righe:

    GET daap://127.0.0.1:3689/server-info HTTP/1.1
    GET daap://127.0.0.1:3689/content-codes HTTP/1.1
    GET daap://127.0.0.1:3689/login HTTP/1.1
    GET daap://127.0.0.1:3689/update?session-id=[num] HTTP/1.1
    GET daap://127.0.0.1:3689/databases?session-id=[num]&revision-id=[num] HTTP/1.1
    GET daap://127.0.0.1:3689/databases/[num]/items?type=music&session-id=[num]&revision-id=[num] HTTP/1.1
    GET daap://127.0.0.1:3689/databases/[num]/items/[num].mp3?session-id=[num]&revision-id=[num] HTTP/1.1

    ad esempio nel caso di:

    dovrei chiamare una sub _server-info{}

    o se ricevo:

    GET daap://127.0.0.1:3689/update?session-id=[num] HTTP/1.1

    dovrei chiamare una sub _update{num}

    nel caso di:

    GET daap://127.0.0.1:3689/databases/[num]/items/[num].mp3?session-id=[num]&revision-id=[num] HTTP/1.1

    dovrei chiamare una sub _song{num_database,num_mp3,num_session_id,num_revi sion_id}

    so che per fare questo ho bisogno di una reg exp match, ma non so proprio da dove iniziare per scriverla. Da notare che 127.0.0.1:3689 può cambiare.

    c'è qualcuno disposto ad aiutarmi?

    Grazie
    Alla batteria dai retta ballA

  2. #2
    non la vedo così tragica. Proviamo:

    codice:
    $get =~ m!daap://\d{1,3}\.d{1,3}\.d{1,3}\.d{1,3}:d{1,5}/([^ ]+) HTTP/1.1!;
    
    # estrai la stringa che ti interessa che è contenuta in ()
    $dati = $1;
    
    # a questo punto la vori su $dati
    
    if ($dati =~ /server-info/) {sub_server-info;}
    elsif ($dati =~ /update\?session-id=(\d+)/) {sub _update($1)}
    # eccetera
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.