Sì, è possibile, è possibile generare espressioni regolari da esempi (testo -> estrazioni desiderate). Questo è uno strumento online funzionante che svolge il lavoro: http://regex.inginf.units.it/
Regex Generator ++ strumento online genera una regex da esempi forniti utilizzando un algoritmo di ricerca GP. L'algoritmo GP è guidato da un fitness multiobiettivo che porta a prestazioni più elevate e una struttura della soluzione più semplice (il Rasoio di Occam). Questo strumento è un'applicazione dimostrativa del Machine Lerning Lab, Università degli Studi di Trieste. Si prega di guardare il video tutorial here.
Questo è un progetto di ricerca in modo da poter leggere sugli algoritmi utilizzati here.
Ecco! :-)
Trovare una regex/soluzione significativa dagli esempi è possibile se e solo se gli esempi forniti descrivono bene il problema. Considerate questi esempi che descrivono un'attività di estrazione, stiamo cercando codici di articoli particolari; gli esempi sono di testo/coppie di estrazione:
"The product code il 467-345A" -> "467-345A"
"The item 789-345B is broken" -> "789-345B"
Un ragazzo (umana), guardando gli esempi, possono dire --ie: "i codici articolo sono cose come \ d ++ - 345 [AB]"
Quando il codice articolo è più permissivo ma non abbiamo fornito altri esempi, non abbiamo prove per comprendere bene il problema. Quando si applica la soluzione generata umana \ d ++ - 345 [AB] al seguente testo, non riesce:
"On the back of the item there is a code: 966-347Z"
È necessario fornire altri esempi, al fine di descrivere meglio ciò che è una partita e ciò che non è un partita desiderata: --ie:
"My phone is +39-128-3905 , and the phone product id is 966-347Z" -> "966-347Z"
Il numero di telefono non è un prodotto id, questo può essere una prova importante.
fonte
2014-12-22 19:59:49
Sono sorpreso che nessuno abbia menzionato [Regex :: PreSuf] (http://search.cpan.org/~jhi/Regex-PreSuf-1.17/PreSuf.pm) – tripleee