Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    131

    Espressione regolare per questo file

    ho un file in questo formato
    codice:
    DeviceMode:             0600
    RingsBeforeAnswer:      1
    SpeakerVolume:          off
    GettyArgs:              "-h %l dx_%s"
    LocalIdentifier:        "MS Informatica Srl"
    TagLineFont:            etc/lutRS18.pcf
    TagLineFormat:          "From %%l|%c|Page %%P of %%T"
    facendo
    codice:
    if (/^(\S+)\s+(\S+)?/) {
    	push(@rv, { 'parametro' => $1,
    		    'valore' => $2 
    		   } );
    			}
    quello che mi serve è un array con parametro e valore,
    riesco a ricavare quasi tutto
    tranne i valore come ad esempio "MS Informatica Srl"
    che mi diventa "MS come posso fare per fargli prendere tutta la stringa?

    quindi sia nel caso la stringa sia tra " " che senza ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Potresti provare con:
    /^(\S+)\s+(\S+.*)?^/

    Oppure (per togliere le virgolette/apici eventuali):
    /^(\S+)\s+[\'\"]?(\S+.*)?[\'\"]?^/

    Dipende anche da cosa puo` esserci nel tuo file.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    131
    usando /^(\S+)\s+(\S+.*)?^/

    non mi tira fuori nulla

    l'altro non va bene

    il file è esattamente

    o
    codice:
    Chiave       valore
    o
    Chiave       "valore"
    o
    Chiave       "Va lo re"
    non ho altre possibilità

  4. #4
    Dai un'occhiata a questo codice:

    codice:
    #!/perl
    
    use strict;
    use warnings;
    use Data::Dumper;
    use vars qw(%mvconfig);
    
    &LOAD_CONFIG;
    
    print Dumper(%mvconfig);
    
    sub LOAD_CONFIG {
    
    	if (!-e "config.txt") { die "Non trovo il file config.txt\n$!\n" }
    
    	open CONF, "config.txt";
    	while (<CONF>) {
    		$mvconfig{$1} = $2 if ( $_ =~ /^(\w+?):(.+?)\n/ );
    	}
    	
    }
    bisogna solo togliere gli spazi di troppo all'inizio delle stringhe...

    naturalmente nel file config.txt abbiamo:

    codice:
    DeviceMode:             0600
    RingsBeforeAnswer:      1
    SpeakerVolume:          off
    GettyArgs:              "-h %l dx_%s"
    LocalIdentifier:        "MS Informatica Srl"
    TagLineFont:            etc/lutRS18.pcf
    TagLineFormat:          "From %%l|%c|Page %%P of %%T"

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 © 2024 vBulletin Solutions, Inc. All rights reserved.