Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    144

    Espressioni regolari in Ruby

    Ciao a tutti,

    ho iniziato da poco a studiare il linguaggio Ruby e non capisco come mai l'istruzione seguente:

    codice:
    puts "11::American President, The (1995)::Comedy|Drama|Romance”[/\)::([a-z]+)\|/i,1]
    mi ritorna "Comedy"

    In particolare non capisco le seguenti cose:

    1. perchè mi ritorna il carattere C maiuscolo se nell'espressione regolare ho indicato solo i caratteri minuscoli dalla a alla z
    2. perche specificando 1 alla fine mi ritorna "Comedy" su l'intera stringa trovata ")::Comedy|"


    Grazie in anticipo a chi vorrà/potrà aiutarmi

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,682
    Ciao, non uso ruby (per cui vado a testare su repl) ma ho un po' di dimestichezza con le regex.
    Cerco di rispondere alle tue domande.

    • Punto 1:
      Hai utilizzato l'opzione "i" che sta per "Case Insensitive" (o "Ignore Case"), per cui nella ricerca vengono considerate indistintamente sia minuscole che maiuscole, anche se hai specificato di cercare solo lettere minuscole.
      Per avere una ricerca Case Sensitive basta omettere tale opzione:
      codice:
      puts "11::American President, The (1995)::Comedy|Drama|Romance"[/\)::([a-z]+)\|/,1]
      => nessuna occorrenza trovata (Comedy ha un carattere mauiscolo)
      codice:
      puts "11::American President, The (1995)::comedy|Drama|Romance"[/\)::([a-z]+)\|/,1]
      => viene trovato: comedy (ha solo caratteri minuscoli)
    • Punto 2:
      Sul pattern, utilizzando le parentesi tonde, vai a specificare un gruppo dove sono comprese le sole lettere dell'eventuale occorrenza trovata ([a-z]+).
      Per tale motivo, specificando l'indice 1, otterrai il contenuto del primo gruppo trovato, cioè solo la parte con le lettere.
      Se vuoi ottenere l'intera stringa dovrai raggrupparla per intero:
      codice:
      puts "11::American President, The (1995)::comedy|Drama|Romance"[/(\)::[a-z]+\|)/,1]
      => viene trovato: )::comedy|
      Oppure, in questo caso, puoi prendere il risultato per intero senza bisogno di utilizzare gruppi:
      codice:
      puts "11::American President, The (1995)::comedy|Drama|Romance"[/\)::[a-z]+\|/]
      => dovrebbe restituire sempre: )::comedy|
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    144
    Grazie mille sei stato veramente esaustivo!

    Mentre ci sono ti chiedo un'altra piccola cosa. Come faccio a stampare il carattere tilde da tastiera?
    Ho provato con alt+126 ma nulla. Su un normale file di testo me lo stampa ma sul prompt di rudy (interactive rudy) che utilizzo no.

    Hai qualche idea?

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,682
    Non ho idea di come funzioni Interactive Ruby Shell e non ho possibilità di testarlo.

    In effetti ti avrei consigliato il classico Alt+126 se tu non avessi specificato che hai già provato senza esito.

    Fai qualche altra prova ad esempio con Alt+0126 (includendo lo zero).

    Un altro workaround potrebbe essere quello di usare momentaneamente il layout di tastiera inglese in cui è presente il carattere tilde in alto nel tasto tra "Esc" e "Tab" a sinistra del tasto "1!".

    Vedi immagine allegata:
    keyboard_us.jpg


    Per impostare al volo il layout inglese (normalmente) si pigia e si rilascia Shift+Alt.
    A questo punto la tua tastiera avrà una cadenza britannica.

    Premendo Shift+"\|" (riferito al layout italiano) si ottiene il carattere tilde.

    Chiaro che non è un metodo troppo ortodosso. Potrebbero esserci metodi più specifici per impostare al meglio l'input su Interactive Ruby Shell. E non so nemmeno se possa funzionare.

    Ad ogni modo, se provi fammi sapere.

    Ah, per reitalianizzare la tua tastiera basta ri-pigiare Shift+Alt
    Ultima modifica di KillerWorm; 24-06-2014 a 16:33
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    144
    si funziona grazie!!!

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,682
    Great!
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Tag per questa discussione

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.