Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    78

    RegEX: trovare tutte le occorrenze di una stringa NON virgolettata

    Lo so, il problema dovrebbe essere abbastanza semplice da risolvere ma non so da dove cominciare e visto che mi serve solo risolvere questo problemino non vorrei spaccarmi la testa più di tanto studiando le espressioni regolari.

    Per trovare tutte le occorrenze della stringa abc devo usare:
    codice:
    /abc/g
    E fin qui ci sono. Come fare però se voglio trovare tutte le occorrenze di abc tranne nel caso la stringa sia virgolettata, cioè senza trovare le occorrenze di "abc"?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    78
    Non c'è proprio nessun esperto di buon cuore che vuole sprecare un minuto per rispondermi? Nessuno nessuno?

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: RegEX: trovare tutte le occorrenze di una stringa NON virgolettata

    Originariamente inviato da axlman
    ... e visto che mi serve solo risolvere questo problemino non vorrei spaccarmi la testa più di tanto studiando le espressioni regolari.
    A te non piacerà, ma forse risolveresti prima con un po più d'impegno, comunque per aiutarti devi usare [^qui_metti_la_stringa_che_va_esclusa] se la stringa è virgoletta cosi "stringa" o cosi 'stringa' probabilmente dovrai ripulirla cioè togliere apici ' virgolette " perché potrebbero confondere la regular.
    Non posso essere più preciso perché anch'io "litigo" con le regular e quando le devo usare vado qui
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    78
    Prima di chiedere aiuto e scocciare avevo cercato un po' per conto mio, come mia abitudine, ma non ero riuscito a trovare quello che cercavo. E visto che le RegEx non le uso mai, non mi sembrava molto intelligente sprecarci le giornate per un singolo problema da poco (per chi se ne intende).

    Ad esempio la sintassi che mi hai suggerito è sintassi di base che conoscevo ma non funziona come voglio, perché trova comunque un carattere prima e dopo la stringa indicata, anche se un carattere diverso da quello indicato.
    Mi spiego meglio: io voglio trovare abc e solo abc ma non "abc". Usando quella sintassi e cioè:
    codice:
    [^\"]abc[^\"]
    è vero che non mi trova "abc", però ad esempio nella stringa ijkabcxyz mi trova kabcx invece di abc.

    Comunque per puro caso mi sono imbattuto nella soluzione. La indico per altri che avessero problemi simili:
    codice:
    (?<!\")abc(?!\")

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    78
    Mannaggia, non funziona. O meglio funziona perfettamentre in un RegEx tester, ma se uso quell'espressione in un programma JS non la legge correttamente e il programma non funziona.
    Qualcuno sa il perché?

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    perche' fino al lookahead (?!\") js ci arriva, il lookbehind negativo non e' implementato

    cerca con chiave "javascript regexp lookbehind"

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    78
    Grazie molte. Visto. Bel casino.

    A questo punto spero vorrai essere così gentile da rispondere ancora a questa domanda, che mi risolverebbe molti più problemi che non trovare e applicare una soluzione alla precedente (mi basta un "non si può fare" o un "cerca questo" come risposta).

    Posso, e se sì come, chiedere con RegEx e che funzioni in JS: trova tutte le occorrenze della stringa abc ma non quando è contenuta nelle parentesi uncinate. E con questo NON intendo "trova abc ma non <abc>" (sarebbe uguale al problema precedente): intendo che non deve trovare abc neanche in <ijkabcxyz> o simili.
    Quindi nel senso "durante la ricerca di abc ignora tutto quello che è contenuto tra parentesi uncinate" o in altre parole ancora "cerca abc finche non trovi <, dopo di che smetti di cercarla e ricomincia a cercarla solo dopo che hai trovato >, rismetti quando ritrovi <, ricomincia dopo >, ecc".

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.