Sim, é possível, podemos gerar regexes a partir de exemplos (texto -> extrações desejadas). Esta é uma ferramenta online de trabalho que faz o seu trabalho: http://regex.inginf.units.it/
A ferramenta online Regex Generator ++ gera um regex a partir de exemplos fornecidos usando um algoritmo de pesquisa GP. O algoritmo GP é conduzido por uma aptidão multiobjetivo que leva a um desempenho superior e uma estrutura de solução mais simples (Navalha de Occam). Esta ferramenta é um aplicativo demonstrativo do Machine Lerning Lab, Trieste University (Università degli studi di Trieste). Por favor, veja o vídeo tutorial aqui .
Este é um projeto de pesquisa para que você possa ler sobre os algoritmos usados aqui .
Ver! :-)
Encontrar uma regex / solução significativa a partir de exemplos é possível se e somente se os exemplos fornecidos descrevem bem o problema. Considere esses exemplos que descrevem uma tarefa de extração, estamos procurando códigos de itens específicos; os exemplos são pares de texto / extração:
"The product code is 467-345A" -> "467-345A"
"The item 789-345B is broken" -> "789-345B"
Um cara (humano), olhando os exemplos, pode dizer: "os códigos dos itens são coisas como \ d ++ - 345 [AB]"
Quando o código do item é mais permissivo, mas não fornecemos outros exemplos, não temos provas para entender bem o problema. Ao aplicar a solução gerada por humanos \ d ++ - 345 [AB] ao seguinte texto, ela falha:
"On the back of the item there is a code: 966-347Z"
Você deve fornecer outros exemplos, a fim de descrever melhor o que é uma correspondência e o que não é uma correspondência desejada: --ou:
"My phone is +39-128-3905 , and the phone product id is 966-347Z" -> "966-347Z"
O número de telefone não é uma identificação do produto, isso pode ser uma prova importante.