Já usaste expressões regulares?
As expressões regulares já existem há que tempos. Mas ainda são muito pouco conhecidas e ainda menos usadas. São uma espécie de linguagem descritiva que permite efectuar pesquisas e substituições muito sofisticadas em cadeias alfa-numéricas.
Um exemplo simples: validar um endereço de correio electrónico. Se tiveres de o fazer através de um algoritmo tens um trabalhão. Mas com expressões regulares, basta duas ou três linhas de código e a expressão regular "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b".
Quase sempre que é necessário fazer pesquisas e substituições relativamente complexas dentro de cadeias alfa-numéricas é quase certo que recorrer a expressões regulares é preferível a desenvolver um algoritmo próprio.
Existem duas partes na utilização de expressões regulares.
-
Criar o código ABAP para fazer o que queremos, seja uma pesquisa, uma validação ou uma substituição;
-
Determinar a expressão regular propriamente dita que resolve o nosso problema.
Em relação à primeira parte existem duas abordagens possíveis para usar expressões regulares em ABAP:
-
Usar os comandos FIND e REPLACE conjuntamente com REGEX;
-
Usar as classes CL_ABAP_REGEX e CL_ABAP_MATCHER.
O primeiro é mais simples e directo mas o segundo é muito mais flexível e tem vantagens em termos de performance se pretenderes aplicar a coisa em massa.
Aqui encontras a documentação online oficial da SAP sobre expressões regulares em ABAP. Pela net fora há exemplos e documentação de como usar expressões regulares em ABAP.
Em relação à segunda parte é importante recordar o seguinte:
-
As expressões regulares são algo padrão, disponível na maioria das linguagens de programação e como tal a mesma expressão regular deverá ter um comportamento semelhante em ABAP, Java ou qualquer outra linguagem que as implemente. Como tal, para aprenderes expressões regulares não precisas de o fazer no contexto do ABAP;
-
Não inventes a roda. Por serem tão poderosas, as expressões regulares são complexas. Na maior parte dos casos típicos já existe uma expressão regular feita por alguém que faz o que queres. Por isso, antes de perderes tempo a tentar fazer a tua, procura uma feita. Há bases de dados de expressões regulares online como esta;
-
Aqui tens um bom tutorial sobre expressões regulares. É baseado em .NET mas isso não interessa porque, lá está, vai dar no mesmo;
-
O fantástico programa DEMO_REGEX_TOY (SE38) permite-te testar a tua expressão regular e afiná-la antes de finalmente a fixares no programa onde a vais usar.
Eu uso expressões regulares raramente. Mas quando as uso sei que a alternativa seria muito dolorosa. É importante acima de tudo saber que existem, para que servem e como funcionam. Assim poderás identificar facilmente quando é vantajoso utilizá-las.
Se tiveres curiosidade, a Wikipédia é um bom ponto de partida para aprender sobre esta fascinante ferramenta.
Obrigado a irene nobrega pela foto.
O Abapinho saúda-vos.