Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2020
    Messaggi
    17
    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

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    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

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