Sto lavorando a un'implementazione abbastanza specializzata motore di ricerca in Perl, cerca (da regex) documenti in modo specifico delimitato (un sottoinsieme di: punct:) stringhe da un file di testo. Sto facendo i soliti trucchi per l'indicizzazione dei motori di ricerca, ma c'è un problema.Come posso identificare i "gettoni" (parola sbagliata) di un'espressione regolare
Alcuni di ricerca modelli regex includono, per necessità, delimitatori utilizzati nel file. "Ok, penso a me stesso," prossimità di parole, quindi ... facile "... e quel lato dell'equazione è abbastanza semplice
Il trucco è che, poiché i modelli di ricerca sono espressioni regolari, non posso facilmente determinate le parole specifiche che dovrei cercare nei dati indicizzati (pensate a "split" se stiamo parlando di stringhe più ordinarie)
Esempio banale, "square [\ s -] * dance" corrisponderebbe direttamente alla "quadratura" ma una corrispondenza di prossimità su "square dance" e "square-dance" (poiché "-" è un delimitatore). Devo sapere, in base alla regex, cercare "square" e " danza "separatamente, ma vicini l'uno all'altro
Sono un gioco per il challe nge, ma preferisco usare il codice stabilito. Il mio istinto mi dice che sarà un gancio interno al motore regex, ma non conosco niente del genere. Eventuali suggerimenti?
Gli schemi di ricerca possono essere arbitrariamente complessi? Se hai bisogno di tempo per creare un indice, perché non decodificare il tuo formato di archiviazione e cercare le parti che ti interessano? –