|
|
|
|
- Observación sobre la sintaxis "Buscar subcadenas entre dos separadores"
- Función ExtractStringBetween y UNICODE
ExtractStringBetween (Función) Permite: - extraer una subcadena entre dos separadores de una cadena de caracteres.
- buscar subcadenas entre dos separadores en una cadena de caracteres.
Esta función permite, por ejemplo, extraer datos entre dos etiquetas en HTML, XML o JSON. Observaciones: - La búsqueda de subcadenas es más rápida que la extracción de subcadenas.
- Se pueden utilizar arrays de separadores. Esto le permite utilizar varios pares de separadores al mismo tiempo.
Country is string = [ <country>France</country><country>Italy</country> <country>Germany</country><country>Spain</country> ] ExtractStringBetween(Country, 1, "<country>", "</country>") // Returns "France" ExtractStringBetween(Country, 2, "<country>", "</country>") // Returns "Italy" ExtractStringBetween(Country, 3, "<country>", "</country>") // Returns "Germany" ExtractStringBetween(Country, 4, "<country>", "</country>") // Returns "Spain" ExtractStringBetween(Country, 5, "<country>", "</country>") // Returns EOT
MyString is string = [ <red fruit>Strawberry</red fruit> <red fruit>Raspberry</red fruit> <exotic fruit>Cacao</exotic fruit> <exotic fruit>Banana</exotic fruit> ] ExtractStringBetween(MyString, 1, ["<red fruit>" , "<exotic fruit>"], ... ["</red fruit>" , "</exotic fruit>"]) // Returns "Strawberry" ExtractStringBetween(MyString, 2, ["<red fruit>" , "<exotic fruit>"], ... ["</red fruit>" , "</exotic fruit>"]) // Returns "Raspberry" ExtractStringBetween(MyString, 3, ["<red fruit>" , "<exotic fruit>"], ... ["</red fruit>" , "</exotic fruit>"]) // Returns "Cacao" ExtractStringBetween(MyString, 4, ["<red fruit>" , "<exotic fruit>"], ... ["</red fruit>" , "</exotic fruit>"]) // Returns "Banana"
// Search for all the substrings Country is string = [ <country>France</country><country>Italy</country> <country>Germany</country><country>Spain</country> ] SubString is string = ExtractStringBetween(Country, firstRank, "<country>", "</country>") WHILE SubString <> EOT Trace(SubString) // Returns "France", "Italy", "Germany", "Spain" SubString = ExtractStringBetween(Country, nextRank, "<country>", "</country>") END
// Search for all the substrings // The separators are in arrays sString is string = [ <red fruit>Strawberry</red fruit> <red fruit>Raspberry</red fruit> <exotic fruit>Cacao</exotic fruit> <exotic fruit>Banana</exotic fruit> ] sResult is string = ExtractStringBetween(sString, firstRank, ["<red fruit>" , ... "<exotic fruit>"], ["</red fruit>" , "</exotic fruit>"]) WHILE sResult <> EOT Trace(sResult) sResult = ExtractStringBetween(sString, nextRank, ["<red fruit>" , "<exotic fruit>"], ... ["</red fruit>" , "</exotic fruit>"]) END
Sintaxis
Extraer una subcadena entre dos separadores de una cadena de caracteres Ocultar los detalles
<Result> = ExtractStringBetween(<Initial string> , <Index> , <Start separator> [, <End separator> [, <Options>]])
<Result>: Cadena de caracteres Corresponde a:- La subcadena entre <Separador de inicio> en <Índice> y <Separador de fin> si no se especifica la constante FromEnd.
- La subcadena entre <Separador de inicio> en <Índice> desde el final de la cadena y el siguiente separador de fin si se especifica la constante FromEnd.
- La constante EOT en uno de los siguientes casos:
- si <Índice> es mayor que el número de separadores de inicio seguidos de separadores de fin en la cadena,
- si todos los separadores son cadenas vacías ("").
<Initial string>: Cadena de caracteres Cadena de caracteres (hasta 2 GB) que contiene la cadena a extraer. <Index>: Entero Posición del separador de inicio seguido de un separador de fin. Observación: un separador de inicio no se tendrá en cuenta si no hay un separador de fin entre este y el separador de inicio anterior, excepto si se cumplan las siguientes condiciones: - el valor de <Índice> es 1,
- no se especifica la opción FromEnd.
<Start separator>: Cadena o array de cadenas Este parámetro puede corresponder a:- La cadena que permite delimitar el inicio de las subcadenas. Esta cadena no se incluye en el resultado.
- Un array de cadenas. Las cadenas del array que permiten delimitar el inicio de las subcadenas. Los separadores no se incluyen en el resultado.
<End separator>: Cadena de caracteres opcional o array de cadenas opcional Este parámetro puede corresponder a:- La cadena que permite delimitar el final de las subcadenas. Esta cadena no se incluye en el resultado.
- Un array de cadenas. Las diferentes cadenas del array delimitan las subcadenas. Los separadores no se incluyen en el resultado.
Si no se especifica este parámetro, el separador de fin será idéntico al <Separador de inicio>. <Options>: Constante opcional de tipo Integer Dirección y características de la búsqueda: | | FromBeginning (Valor predeterminado) | Inicia la búsqueda del primer al último carácter de la cadena. | FromEnd | Inicia la búsqueda del último al primer carácter de la cadena. | IgnoreCase | Busca sin distinguir entre mayúsculas, minúsculas o acentos. | WholeWord | Busca una palabra completa (entre caracteres de puntuación o espacios). |
Buscar subcadenas entre dos separadores en una cadena de caracteres Ocultar los detalles
<Result> = ExtractStringBetween(<Initial string> , <Search options> , <Start separator> [, <End separator> [, <Options>]])
<Result>: Cadena de caracteres Corresponde a:- la siguiente o anterior subcadena dependiendo de la búsqueda especificada. <Resultado> no contiene separadores.
- la constante EOT al final de la búsqueda.
<Initial string>: Cadena de caracteres Cadena de caracteres (hasta 2 GB) que contiene la cadena a extraer. <Search options>: Constante de tipo Integer Dirección de búsqueda: | | firstRank | Inicia la búsqueda de subcadenas separadas por los delimitadores especificados desde el inicio de la cadena. | lastRank | Inicia la búsqueda de subcadenas separadas por los delimitadores especificados desde el final de la cadena. | nextRank | Continúa la búsqueda iniciada con la constante firstRank | previousRank | Continúa la búsqueda iniciada con la constante lastRank |
<Start separator>: Cadena o array de cadenas Este parámetro puede corresponder a:- La cadena que permite delimitar el inicio de las subcadenas. Esta cadena no se incluye en el resultado.
- Un array de cadenas. Las cadenas del array que permiten delimitar el inicio de las subcadenas. Los separadores no se incluyen en el resultado.
<End separator>: Cadena de caracteres opcional o array de cadenas opcional Este parámetro puede corresponder a:- La cadena que permite delimitar el final de las subcadenas. Esta cadena no se incluye en el resultado.
- Un array de cadenas. Las diferentes cadenas del array delimitan las subcadenas. Los separadores no se incluyen en el resultado.
Si no se especifica este parámetro, el separador de fin será idéntico al <Separador de inicio>. <Options>: Constante opcional de tipo Integer Características de la búsqueda: | | IgnoreCase | Busca sin distinguir entre mayúsculas, minúsculas o acentos. | WholeWord | Busca una palabra completa (entre caracteres de puntuación o espacios). |
Observaciones Observación sobre la sintaxis "Buscar subcadenas entre dos separadores" - Este tipo de búsqueda solo se puede utilizar en cadenas constantes. Por lo tanto, se debe utilizar un elemento del proyecto (variable, control, campo, etc.) como cadena inicial.
- Cuando se inicia una búsqueda con las constantes firstRank o lastRank, la información de la búsqueda se almacena en la memoria hasta que se hayan examinado todas las subcadenas. Se recomienda utilizar este tipo de búsqueda solo cuando se deben examinar todas las subcadenas.
Función ExtractStringBetween y UNICODE Los parámetros <Cadena inicial>, <Separador de inicio> y <Separador de fin> pueden corresponder a: - cadenas ANSI.
- cadenas UNICODE.
- buffers.
Se pueden utilizar cadenas ANSI, cadenas Unicode y buffers en los diferentes parámetros de la función. La siguiente regla de conversión se utiliza para sistemas Ansi (Windows o Linux): - Si al menos una de las cadenas es un buffer, todas las cadenas se convierten en buffers y la operación se realiza con buffers.
- Si no se cumple la primera condición y hay al menos una cadena de caracteres Unicode, todas las cadenas se convierten en Unicode y la operación se realiza en Unicode (la conversión se realiza con el conjunto de caracteres actual, si es necesario).
- De lo contrario, la operación se realiza en Ansi.
La regla de conversión utilizada para los sistemas Unicode es la siguiente: - Si al menos una de las cadenas es un buffer, todas las cadenas se convierten en buffers y la operación se realiza con buffers.
- De lo contrario, la operación se realiza en Unicode.
Recordatorio: Los parámetros de idioma se definen al llamar a la función ChangeCharset.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|