Documentaciónposicion_ocurrencias(texto, sub)

posicion_ocurrencias(texto,sub)\texttt{posicion\_ocurrencias}(texto, sub)

Nombre

posicion_ocurrencias - Busca todas las posiciones donde aparece una subcadena.

Sinopsis

info = strings.posicion_ocurrencias(texto, sub)

Descripcion

Busca todas las posiciones donde aparece una subcadena dentro de un texto.

Es util para:

  • localizar patrones repetidos
  • recorrer coincidencias una por una
  • analizar estructura interna de cadenas

Comportamiento

  • Permite ocurrencias solapadas.
  • Si sub esta vacio, retorna cant = 0.
  • Devuelve una TABLA con cant y pos, donde pos es un vector numerico 0-based con posiciones BLOX 1-based en el texto.

Funciones API relacionadas

  • strings.contiene_substr()
  • strings.contar_ocurrencias()
  • strings.reemplazar_primero()
  • strings.reemplazar_todos()
  • strings.extraer_entre()

Parámetros

ParámetroTipoDescripción
textoSTRINGTexto que podria contener 0, 1 o varias ocurrencias de un sub-texto.
subSTRINGSub-texto que buscaremos en texto.

Valor de retorno

TABLA - TABLA con campos cant y pos. pos es un VECTOR numerico 0-based con posiciones BLOX 1-based dentro del texto.

Ejemplo

ejemplo.blox
// Retorna la cantidad de veces que el 'subestring' aparece en el 'string'.
// Tambien retorna sus posiciones en el 'string'
//
// pos = strings.posicion_ocurrencias(str, sub)
//
//
//

INCLUIR "strings.api"

FUNCION PRINCIPAL
INICIO 

	STRING str, sub
	NUMERICO i, cant
	VECTOR pos[]
	TABLA  ret

	str = "No es lo que logras, es lo que superas. Eso es lo que define tu vida."
	sub = "lo"
	ret = strings.posicion_ocurrencias(str, sub)
	pos = ret[1].pos
	cant = ret[1].cant

	IMPRIMIR("\nHay ", cant, " ocurrencias en las posiciones ")
	i = 0
	MIENTRAS (i < cant) HACER
	    IMPRIMIR(pos[i])
	    SI (i < cant - 1) ENTONCES
	        IMPRIMIR(", ")
	    FIN_SI
	    i = i + 1
	FIN_MIENTRAS

FINAL