Dal momento che sto studiando per il mio corso di lingue formale, mi sono imbattuto in questi post affascinanti ( One Two ) che descrivono come trovare un numero primo usando una regexp . Come ho detto, una regexp , non un'espressione regolare . Poiché un'espressione regolare può corrispondere a stringhe calcolate da un automa a stati finiti e la ricerca di un numero primo non può essere eseguita da un FSA, la regexp mostrata nel post del blog non è interamente un'espressione regolare poiché esegue il backtracking per abbinare la stringa.
Dato che non ho mai usato espressioni regolari, ora la mia domanda:
Come posso riconoscere immediatamente una regexp da un'espressione regolare "vera" solo guardandola?
Definizioni: per espressione regolare, mi riferisco al concetto definito nei linguaggi formali. Per regexp intendo l'idea supportata dai moderni linguaggi di programmazione; la sintassi regexp contiene spesso funzionalità aggiuntive, come i riferimenti indietro. I regexps visti nei linguaggi di programmazione sono strettamente più potenti delle espressioni regolari in stile linguistico formale.