Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2020
    Messaggi
    11

    espressioni reg Ricerca multipla

    salve a tutti , ho la nescessinta di trovare, mediante le espressioni regolari in notepad++, tutte le parole che precedute dal simbolo del dollaro "$" e da uno spazio inizino con "a" e/o "b" e/0 "bah".
    Ho provato con la seguente espressione ma trova solo tutte le combinazioni di a e b ma non trova "bah".

    codice:
    \$((\s)+)([a|b|bah]+)
    Qualche Suggerimento? grazie
    Ultima modifica di clood; 23-05-2021 a 14:27

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,588
    Se vuoi UNO SPAZIO dopo il dollaro questo dovrebbe andare
    codice:
    \$ (a|b|bah)\S*
    Se vuoi dei caratteri bianchi dopo il dollaro
    codice:
    \$\s+(a|b|bah)\S*
    La cosa fondamentalmente sbagliata nella tua espressione regolare sono le parentesi quadre, che identificano una character class
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2020
    Messaggi
    11
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Se vuoi UNO SPAZIO dopo il dollaro questo dovrebbe andare
    [code]
    La cosa fondamentalmente sbagliata nella tua espressione regolare sono le parentesi quadre, che identificano una character class
    Ciao Scara, mi sono accorto del copia incolla dell'espressione sbagliata.Sei stato/a più veloce di me!
    Infatti quella corretta dovrebbe essere :
    codice:
    \$((\s)+)((a|b|bah)+)
    Dico dovrebbe perche come detto nel mio post iniziale non mi trova l'ultima opzione ("bah"), pur essendo presente nel testo di prova ma trova solo a, ab, b, e ba. Cosa strana è che se "bah" la metto come prima opzione ciuoè "\$((\s)+)((blah|a|b)+)" mi viene trovata.
    Come è possibile?
    ciao e grazie

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,588
    A seconda dell'algoritmo utilizzato per il matching le alternative potrebbero essere ordinate, in questo caso b matcha anche bah e quindi viene scelto perché lo precede. La soluzione è ordinare per lunghezza dei prefissi, quindi (a|bah|b) o ragruppare (a|b(ah)?)
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2020
    Messaggi
    11
    quindi se ho ben capito devo essere ordinate in ordine alfabetico (a-z)e in caso di piu prefissi che iniziano con la stessa lettera l'ordine � inverso (z-a)-E' corretto?
    grazie

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,588
    No, devi ordinare per lunghezza dei prefissi
    Ad esempio se ha b ba be bee beea bae un ordine valido è beea bee be bae ba b un altro beea bae bee be ba b un altro beea bee bae be ba b un altro bae ba beea bee be b e così via
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2020
    Messaggi
    11
    Ok grazie mille.
    Ho capito.
    Buona serata

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