lxRegex expone TXLSRegex, el backend con estado usado por las funciones de expresiones regulares de la calculadora; los llamadores ordinarios de libros pueden usar las APIs de fórmulas descritas en la evaluación contextual de fórmulas
El backend usa la compilación de 16 bits incluida de PCRE2 10.49 con modo UTF, callouts automáticos de presupuesto y sin JIT, con objetos estáticos para los destinos Windows de Delphi y C++Builder y los destinos admitidos FPC Linux x64 o macOS ARM64; los destinos de backend no admitidos reportan xrsUnavailable
Cada instancia es dueña de su patrón compilado, su asignador y sus contextos de coincidencia; cree una instancia separada para cada operación simultánea y mantenga vivo al propietario de la devolución de llamada de presupuesto hasta que la instancia se libere
| Declaración pública | Contrato |
|---|---|
TXLSRegex.Create(ABudget: TXLSRegexBudget) | Asigna los contextos del backend y retiene la devolución de llamada opcional; pase nil para no tener presupuesto del llamador, y luego inspeccione los resultados de operaciones y el Status |
TXLSRegex.Destroy | Libera el patrón compilado, los datos de coincidencia y los contextos; los llamadores normalmente invocan Free en un bloque finally |
TXLSRegex.Compile(Pattern, IgnoreCase): Boolean | Compila un patrón UTF-16 y prepara su almacenamiento de capturas, reemplazando cualquier patrón anterior; IgnoreCase habilita la coincidencia de PCRE2 sin distinguir mayúsculas y False deja la coincidencia sensible a mayúsculas |
TXLSRegex.Match(Text, Offset, NonemptyAtStart, out Offsets): Boolean | Exige una compilación exitosa, busca desde el desplazamiento UTF-16 basado en cero y devuelve desplazamientos de capturas desacoplados; NonemptyAtStart=True solicita una coincidencia anclada y no vacía en ese desplazamiento exacto, lo que permite avanzar más allá de una coincidencia vacía |
TXLSRegex.Replace(Text, Replacement, Occurrence, out Value): Boolean | Exige una compilación exitosa y usa la sintaxis de reemplazo de PCRE2, incluidas las referencias de capturas numeradas y con nombre; cero selecciona todas las coincidencias, un valor positivo selecciona la ocurrencia basada en uno desde el inicio, y un valor negativo cuenta desde el final |
TXLSRegex.Check(AWork, AExtraBytes): Boolean | Llama a la devolución de llamada de presupuesto con el incremento de trabajo actual y los bytes residentes del backend más AdditionalBytes y los bytes extra propuestos; la contabilidad de bytes negativa, el desbordamiento de enteros o un estado terminal fijado devuelven False |
TXLSRegex.Status: TXLSRegexStatus | Estado de solo lectura de la última operación o de la condición terminal de presupuesto/backend; úselo después de que una operación devuelva False para distinguir una ausencia de coincidencia de una falla |
TXLSRegex.CaptureCount: Cardinal | Número de solo lectura de grupos de captura explícitos reportados por el patrón compilado más recientemente, excluyendo la ranura de la coincidencia completa; úselo después de que Compile tenga éxito |
TXLSRegex.AdditionalBytes: Int64 | Contabilidad de lectura y escritura para los búferes temporales de propiedad del llamador que deberían participar en cada comprobación de presupuesto; tiene cero como valor predeterminado y no asigna memoria por sí mismo |
TXLSRegexOffsets es un arreglo dinámico de NativeUInt con dos elementos por ranura; la ranura cero contiene la coincidencia completa, seguida de los grupos de captura explícitos en orden de declaración
Cada par es un inicio basado en cero y un final exclusivo medidos en unidades de código UTF-16, en lugar de los índices de cadena basados en uno de Delphi o las posiciones de escalares Unicode; una captura opcional sin definir usa High(NativeUInt) para ambos extremos
Match limpia su arreglo de salida antes de cada intento; Replace limpia su salida antes de comenzar, y un reemplazo exitoso sin ocurrencia seleccionada devuelve el texto original con xrsOk
Las referencias de reemplazo usan la notación de dólar de PCRE2, como $1 y ${name}; una captura participante sin definir contribuye una cadena vacía, mientras que una referencia de reemplazo inválida reporta xrsInvalidReplacement
Llame a Compile con éxito antes de coincidir o reemplazar; una llamada sin un patrón preparado devuelve False y no fabrica un estado de error de patrón
TXLSRegexBudget = function(AWork, ABytes: Int64): Boolean of object recibe un incremento de trabajo para acumular y una estimación actual de bytes para comparar con el límite del llamador; ABytes no es un delta de asignación
Las comprobaciones ocurren durante la preparación del patrón, las asignaciones del backend, los callouts de coincidencia, la asignación de desplazamientos de resultados y la sustitución; el llamador aporta la política de cancelación y de cuota en lugar de depender de un presupuesto mutable de todo el proceso
Devolver False o lanzar una excepción desde la devolución de llamada aborta la operación con xrsAborted; las excepciones de la devolución de llamada no escapan a través del backend nativo
xrsResourceLimit, xrsAborted y xrsUnavailable son terminales para esa instancia, así que cree otra instancia antes de reintentar después de esas condiciones; los errores de patrón o de texto inválidos no imponen ese fijado terminal
Valor de TXLSRegexStatus | Significado |
|---|---|
xrsOk | La operación del backend se completó con éxito |
xrsNoMatch | La búsqueda de coincidencia actual no encontró ninguna coincidencia |
xrsInvalidPattern | El patrón no pudo compilarse, incluida la codificación de patrón inválida |
xrsInvalidReplacement | La expresión de reemplazo fue rechazada o un error del backend quedó fuera de los mapeos explícitos de estado |
xrsInvalidText | La coincidencia o la sustitución encontró un error explícitamente clasificado de entrada UTF-16 o de límite de caracteres |
xrsResourceLimit | Una asignación del backend, un límite interno de coincidencia o un límite de contabilidad de bytes impidieron completar |
xrsAborted | La devolución de llamada de presupuesto detuvo la operación, su devolución de llamada lanzó una excepción, o un callout nativo abortó la coincidencia |
xrsUnavailable | El destino no tiene un backend estático incluido admitido |
La calculadora mapea estos estados del backend a sus propios errores de fórmulas y diagnósticos de evaluación; estas APIs directas del backend no devuelven Variant de errores de Excel