Sí, es posible, podemos generar expresiones regulares a partir de ejemplos (texto -> extracciones deseadas). Esta es una herramienta en línea que funciona y hace el trabajo: http://regex.inginf.units.it/
La herramienta en línea Regex Generator ++ genera una expresión regular a partir de los ejemplos proporcionados utilizando un algoritmo de búsqueda GP. El algoritmo GP está impulsado por una aptitud multiobjetivo que conduce a un mayor rendimiento y una estructura de solución más simple (Occam's Razor). Esta herramienta es una aplicación demostrativa del Machine Lerning Lab, Trieste Univeristy (Università degli studi di Trieste). Mira el video tutorial aquí .
Este es un proyecto de investigación, por lo que puede leer sobre los algoritmos usados aquí .
¡Mirad! :-)
Es posible encontrar una expresión regular / solución significativa a partir de ejemplos si y solo si los ejemplos proporcionados describen bien el problema. Considere estos ejemplos que describen una tarea de extracción, estamos buscando códigos de artículo particulares; los ejemplos son pares de texto / extracción:
"The product code is 467-345A" -> "467-345A"
"The item 789-345B is broken" -> "789-345B"
Un tipo (humano), mirando los ejemplos, puede decir: "los códigos de artículo son cosas como \ d ++ - 345 [AB]"
Cuando el código del artículo es más permisivo pero no hemos proporcionado otros ejemplos, no tenemos pruebas para entender bien el problema. Al aplicar la solución generada por humanos \ d ++ - 345 [AB] al siguiente texto, falla:
"On the back of the item there is a code: 966-347Z"
Debe proporcionar otros ejemplos para describir mejor qué es una coincidencia y qué no es una coincidencia deseada: --es decir:
"My phone is +39-128-3905 , and the phone product id is 966-347Z" -> "966-347Z"
El número de teléfono no es una identificación de producto, esto puede ser una prueba importante.