O SplitRegEx é uma função que opera sob a forma de expressão regular que tem por finalidade quebrar um texto do tipo CHARACTER, ele não aceita varchar ou longvarchar, em partes que normalmente armazenadas em uma Collection. A regra para a quebra é definida por uma expressão que pode ser um ou mais caracteres que simbolizam a separação entre as partes de texto.
Por exemplo, arquivos CSV, separa as partes de um texto por meio de ponto-e-virgula ou qualquer outro caracter. Desta forma a frase a seguir tem um significado de um conjunto de informações separadas pelo mesmo texto.
10;Jose da Silva; Av.Central,10;Santana do Parnaiba;São Paulo
Desta forma essa função é muito útil na sua luta diária com Genexus. E para definir o tatame voce pode criar um WebPanel. E na área de Events programe:
Event Start &texto = "10;Jose da Silva; Av.Central,10;Santana do Parnaiba;São Paulo" &itens = &teste.SplitRegEx(';') for &item in &itens msg(&item) endfor EndEvent |
As variáveis podem ser definidas como:
&item = Character(100) &itens = Character(100) - Collection &texto = Character(200) |
O resultado é a quebra do texto nas partes indicadas por ; e a apresentação de cada parte individualmente como uma mensagem.
Observe que em &itens voce terá uma série de informações, tais como o numero de itens, o item corrente navegado, entre outros.
Boa luta!
4 comentários:
Add janmarcelo@rpsavi.com.br pra trocarmos figurinhas, sou desenvolvedor GeneXus á 3 anos, e 1 ano e meio com a GeneXus X... abraços, fique com DEUS!
Hummm..Legal... Estava lendo um material em Java sobre o método split(). Ele tokeniza os dados a partir de um Pattern, neste caso posso usar expressões regulares com metacaracteres e ainda quantificadores tipo:
"\\d" --> somente dígitos
"\\s" --> espaços em branco
"\\w" --> Caracteres alfanuméricos e hífen
etc...
Quantificadores
* --> 0 e mais ocorrências
+ --> 1 e mais ocorrências
? --> 0 ou 1 ocorrência
Exemplo:
String Texto = "abc1abc1abc1abc"
--> uma forma
texto.split("1")
--> outra forma
texto.split("\\d")
;)
Caro Presidente,
Gostei do seu comentário, essa coisa de expressão regular é de outro mundo, e este contribuiu muito na questão.
ab e obrigado
Olá senhores.
Precisei pegar apenas a primeira palavra de uma string e fiz assim:
stringOriginal = "Genexus Genexando Genexecitamos Exemplo bla bla"
Passos:
1° Criei uma coleção tipo LongVarchar: &ColectionString
2° Utilizei o SplitRegEX para carregar a &ColectionString(vai pegar só as palavras, sem espaços):
&ColectionString = stringOriginal .SplitRegEx(" ")
ou:
&ColectionString = stringOriginal .SplitRegEx("\\s")
ColectionString Carregada:
[1]"Genexus",
[2]"Genexando",
[3]"Genexecitamos",
[4]"Exemplo",
[5]"bla",
[6]"bla"
No meu caso como eu queria só a primeira palavra, então fiz assim:
&PrimeiraPalavra = ColectionString.Item(1)
Resultado: "Genexus"
Espero ter ajudado.
Postar um comentário