Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [REGEXP] Pattern '?=.'

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698

    [REGEXP] Pattern '?=.'

    Scusatemi, non capisco questa espressione regolare:

    ^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$

    In particolare non capisco il significato del pattern ?=. perchè non mi risulta che '=' sia un metacarattere..e allora non riesco a interpretare tutto il resto.

    Per completezza, questa espressione viene proposta in un sito che non mi ricordo come controllo di robustezza per le password (questa dovrebbe controllare i requisiti minimi).

  2. #2
    http://www.regular-expressions.info/refadv.html (in basso, sezione lookaround)
    http://www.regular-expressions.info/lookaround.html (per una trattazione esaustiva dell'argomento)
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Grazie

  4. #4
    Di niente; alla prossima!
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    ho letto entrambi i link, ma io nn ho capito il loro funzionamento? Qualcuno può spiegarmi cosa server questi lookaround? Magari un giorno potrebbero servire
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  6. #6
    Originariamente inviato da Hysoka
    ho letto entrambi i link, ma io nn ho capito il loro funzionamento? Qualcuno può spiegarmi cosa server questi lookaround? Magari un giorno potrebbero servire
    La parte iniziale

    ^(?=.{8,})

    dice che una password deve iniziare con un minimo di otto caratteri. Vediamo perché.

    Il simbolo '^' specifica che il match deve avvenire a inizio linea. Vedi, nel sito che ha indicato MItaly, il paragrafo Using ^ and $ as Start of Line and End of Line Anchors

    Il carattere '.' specifica un qualunque carattere tranne quello di new line. Possiamo specificare un numero minimo o massimo (o entrambi) di occorrenze, con questa notazione:

    {min,max}

    Si può omettere max per specificare soltanto il numero minimo di occorrenze. Se omettiamo min, specifichiamo solo il numero massimo di occorrenze. Infine, se specifichiamo solo un numero senza virgola, specifichiamo il numero esatto di occorrenze.
    Per esempio

    a{8,21}

    specifica una stringa costituita da un minimo di otto e un massimo di ventuno 'a'.

    a{8,} specifica una stringa costituita da un minimo di otto 'a'.

    a{,10} specifica una stringa costituita da un massimo di dieci 'a'.

    a{5} specifica una stringa costituita esattamente da cinque 'a'.

    Nel nostro esempio abbiamo

    .{8,}

    che significa una stringa composta da qualunque carattere(tranne new line) lunga come minimo otto caratteri.

    Infine, la notazione ^(?=.{8,}) specifica che la nostra stringa deve trovarsi a inizio linea e deve contenere almeno otto caratteri(tranne il new line).

    Con il positive lookahead specifichiamo l'espressione che deve seguire. Per esempio, se vogliamo matchare tutte le stringhe che cominciano con una a sono seguite da una b e una c, scriveremo:

    a(?=(bc))

    Se invece vogliamo matchare tutte le stringhe che cominciano con una a ma che non sono seguite da una b e una c, dobbiamo usare il negative lookahead, così:

    a(?!(bc))

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.