T4.3: Manipulates Strings

Knowledge Review - InterSystems ObjectScript Specialist

1. $PIECE para cadenas delimitadas

Puntos Clave

  • $PIECE($P): Extrae una subcadena basada en un delimitador y número de pieza
  • $P(string, delimiter, from, to): Extrae piezas desde la posición "from" hasta "to"
  • SET $PIECE: Modifica una pieza específica in situ: SET $P(var, delim, pos) = newValue
  • Posiciones base 1: La primera pieza es la posición 1
  • Delimitadores de múltiples caracteres: El delimitador puede tener más de un carácter: $P(str, "::", 2)
  • Fuera de rango: Solicitar una pieza más allá del último delimitador devuelve cadena vacía

Notas Detalladas

Descripción general

$PIECE es una de las funciones de ObjectScript más utilizadas. Trabaja con cadenas delimitadas, extrayendo o reemplazando segmentos basados en un delimitador especificado. A diferencia de las listas, $PIECE trabaja con cadenas simples sin ninguna codificación especial.

Extracción básica

 SET record = "Smith^John^42^New York"

 // Extract individual pieces (1-based)
 WRITE $PIECE(record, "^", 1), !     // Smith
 WRITE $PIECE(record, "^", 2), !     // John
 WRITE $PIECE(record, "^", 3), !     // 42
 WRITE $PIECE(record, "^", 4), !     // New York

 // $P shorthand
 WRITE $P(record, "^", 1), !         // Smith

 // Piece beyond range returns ""
 WRITE $P(record, "^", 10), !        // (empty string)

Extracción de múltiples piezas

 SET record = "Smith^John^42^New York^Engineer"

 // Extract pieces 2 through 4
 WRITE $P(record, "^", 2, 4), !      // John^42^New York

 // Extract from piece 3 to end
 WRITE $P(record, "^", 3, *), !      // 42^New York^Engineer

 // First piece only (default when no position given)
 WRITE $P(record, "^"), !            // Smith

Modificación de piezas con SET $PIECE

 SET record = "Smith^John^42^New York"

 // Replace piece 3 (age)
 SET $PIECE(record, "^", 3) = 43
 WRITE record, !    // Smith^John^43^New York

 // $P shorthand for SET
 SET $P(record, "^", 4) = "Boston"
 WRITE record, !    // Smith^John^43^Boston

 // Setting a piece beyond current range extends the string
 SET $P(record, "^", 6) = "Active"
 WRITE record, !    // Smith^John^43^Boston^^Active
 // Note: piece 5 is empty, creating two consecutive delimiters

Construcción de cadenas pieza por pieza

 // Start with empty string and build incrementally
 SET msg = ""
 SET $P(msg, "|", 1) = "MSH"
 SET $P(msg, "|", 2) = "^~\&"
 SET $P(msg, "|", 3) = "SENDING_APP"
 WRITE msg, !    // MSH|^~\&|SENDING_APP

Delimitadores de múltiples caracteres

 SET data = "key1::value1::key2::value2"
 WRITE $P(data, "::", 1), !    // key1
 WRITE $P(data, "::", 2), !    // value1
 WRITE $P(data, "::", 4), !    // value2

Conteo de piezas con $LENGTH

 SET csv = "a,b,c,d,e"
 WRITE $LENGTH(csv, ","), !    // 5 (number of comma-delimited pieces)

 SET empty = ""
 WRITE $LENGTH(empty, ","), !  // 1 (empty string = 1 piece)

Referencias de Documentación

2. $EXTRACT para subcadenas

Puntos Clave

  • $EXTRACT($E): Extrae caracteres por posición: $E(string, from, to)
  • Carácter individual: $E(string, n) extrae el enésimo carácter (base 1)
  • Rango: $E(string, from, to) extrae una subcadena
  • SET $EXTRACT: Reemplaza caracteres in situ: SET $E(var, from, to) = replacement
  • Desde el final: $E(string, *) obtiene el último carácter; $E(string, *-n) cuenta desde el final
  • $LENGTH: Devuelve el número de caracteres en una cadena

Notas Detalladas

Descripción general

$EXTRACT trabaja a nivel de carácter, extrayendo o reemplazando caracteres individuales o subcadenas por posición. A diferencia de $PIECE que trabaja con delimitadores, $EXTRACT usa posiciones numéricas dentro de la cadena.

Extracción básica de caracteres

 SET name = "ObjectScript"

 // Single character (1-based)
 WRITE $EXTRACT(name, 1), !        // O
 WRITE $EXTRACT(name, 7), !        // S

 // $E shorthand
 WRITE $E(name, 1), !              // O

 // Character range
 WRITE $E(name, 1, 6), !           // Object
 WRITE $E(name, 7, 12), !          // Script

 // From end
 WRITE $E(name, *), !              // t (last char)
 WRITE $E(name, *-5, *), !         // Script (last 6 chars)

Modificación con SET $EXTRACT

 SET word = "Hello"

 // Replace single character
 SET $E(word, 1) = "J"
 WRITE word, !                     // Jello

 // Replace range (different length OK)
 SET $E(word, 1, 3) = "Mars"
 WRITE word, !                     // Marslo

 // Replace with shorter string
 SET word = "Hello World"
 SET $E(word, 6, 6) = "-"
 WRITE word, !                     // Hello-World

Uso de $LENGTH para longitud de cadena

 SET str = "ObjectScript"
 WRITE $LENGTH(str), !             // 12

 // Get last N characters
 SET n = 6
 WRITE $E(str, $L(str) - n + 1, $L(str)), !   // Script

 // Or more concisely
 WRITE $E(str, *-5, *), !                       // Script

Patrones prácticos

 // Check if string starts with a prefix
 SET filename = "report_2025.pdf"
 IF $E(filename, 1, 7) = "report_" {
     WRITE "It's a report file", !
 }

 // Check file extension
 SET ext = $E(filename, *-2, *)
 WRITE "Extension: ", ext, !       // pdf

 // Pad a string to fixed width
 SET num = "42"
 SET padded = $E("00000" _ num, *-4, *)
 WRITE padded, !                   // 00042

 // Truncate a string
 SET longStr = "This is a very long string"
 SET truncated = $E(longStr, 1, 10) _ "..."
 WRITE truncated, !                // This is a ...

Referencias de Documentación

3. $REPLACE, $TRANSLATE, $ZSTRIP

Puntos Clave

  • $REPLACE: Reemplaza todas las ocurrencias de una subcadena: $REPLACE(string, old, new)
  • $TRANSLATE($TR): Reemplazo carácter por carácter: $TR(string, fromChars, toChars)
  • Eliminación con $TRANSLATE: Si toChars es más corto, los caracteres de fromChars sin correspondencia se eliminan
  • $ZSTRIP: Elimina caracteres por categoría/máscara: $ZSTRIP(string, mask, removeChars, keepChars)
  • Máscaras de $ZSTRIP: "<" eliminar al inicio, ">" eliminar al final, "*" eliminar todo, "<>" eliminar en ambos extremos

Notas Detalladas

Descripción general

Estas tres funciones manejan diferentes necesidades de transformación de cadenas: $REPLACE para reemplazo de subcadenas, $TRANSLATE para mapeo carácter a carácter, y $ZSTRIP para eliminar categorías de caracteres.

$REPLACE: Reemplazo de subcadenas

 SET str = "Hello World, Hello IRIS"

 // Replace all occurrences
 WRITE $REPLACE(str, "Hello", "Hi"), !
 // Output: Hi World, Hi IRIS

 // Case-sensitive
 WRITE $REPLACE(str, "hello", "hi"), !
 // Output: Hello World, Hello IRIS (no change -- case mismatch)

 // Remove by replacing with empty string
 WRITE $REPLACE(str, " Hello", ""), !
 // Output: Hello World, IRIS

 // Replace multi-character sequences
 SET path = "C:\Users\Admin\Documents"
 WRITE $REPLACE(path, "\", "/"), !
 // Output: C:/Users/Admin/Documents

$TRANSLATE: Mapeo carácter por carácter

 // Map characters one-to-one
 SET str = "Hello World"
 WRITE $TRANSLATE(str, "lo", "LO"), !
 // Output: HeLLO WOrLd

 // $TR shorthand
 WRITE $TR(str, "HW", "hw"), !
 // Output: hello world

 // Delete characters (toChars shorter than fromChars)
 SET phone = "(555) 123-4567"
 WRITE $TR(phone, "()- ", ""), !
 // Output: 5551234567

 // ROT13 encoding
 SET msg = "Hello"
 SET from = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
 SET to   = "NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm"
 WRITE $TR(msg, from, to), !
 // Output: Uryyb

 // Convert to uppercase (simple ASCII)
 SET lower = "hello world"
 WRITE $TR(lower, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"), !
 // Output: HELLO WORLD
 // Better: use $ZCONVERT(lower, "U") -- see item 6

$ZSTRIP: Eliminación basada en categorías

 SET str = "  Hello 123 World!  "

 // Strip leading and trailing whitespace
 WRITE $ZSTRIP(str, "<>W"), !
 // Output: Hello 123 World!

 // Strip all whitespace
 WRITE $ZSTRIP(str, "*W"), !
 // Output: Hello123World!

 // Strip leading whitespace only
 WRITE $ZSTRIP(str, "<W"), !
 // Output: Hello 123 World!  (trailing space preserved)

 // Strip all non-numeric characters
 SET mixed = "abc123def456"
 WRITE $ZSTRIP(mixed, "*A"), !
 // Output: 123456 (strips all alpha, leaving digits)

 // Strip specific characters
 SET data = "###Hello###"
 WRITE $ZSTRIP(data, "<>", "#"), !
 // Output: Hello (strips # from both ends)

 // Common masks:
 // "W" = whitespace, "A" = alphabetic, "N" = numeric
 // "P" = punctuation, "C" = control characters
 // "L" = lowercase, "U" = uppercase, "E" = everything

 // Strip all punctuation
 SET text = "Hello, World! How are you?"
 WRITE $ZSTRIP(text, "*P"), !
 // Output: Hello World How are you

4. Concatenación de cadenas

Puntos Clave

  • Operador de concatenación (_): El guión bajo une cadenas: "Hello" _ " " _ "World"
  • Sin literales de plantilla: ObjectScript no soporta interpolación de cadenas ni cadenas de plantilla
  • Coerción de tipos: Los valores no string se convierten automáticamente al concatenar
  • Construcción de cadenas en bucles: Patrón común para construir salida incrementalmente
  • $CHAR para caracteres especiales: Use $CHAR(n) para concatenar caracteres no imprimibles

Notas Detalladas

Descripción general

ObjectScript usa el carácter de guión bajo (_) como su operador de concatenación de cadenas. No hay sintaxis de interpolación de cadenas ni literales de plantilla -- toda la construcción de cadenas usa concatenación explícita.

Concatenación básica

 SET first = "John"
 SET last = "Smith"

 // Simple concatenation
 SET fullName = first _ " " _ last
 WRITE fullName, !                  // John Smith

 // Multiple concatenations
 SET greeting = "Hello, " _ first _ " " _ last _ "!"
 WRITE greeting, !                  // Hello, John Smith!

 // Numeric coercion
 SET age = 42
 SET msg = first _ " is " _ age _ " years old"
 WRITE msg, !                       // John is 42 years old

Caracteres especiales con $CHAR

 // Newline character
 SET crlf = $CHAR(13, 10)
 SET multiLine = "Line 1" _ crlf _ "Line 2"

 // Tab character
 SET tab = $CHAR(9)
 SET tsv = "Col1" _ tab _ "Col2" _ tab _ "Col3"

 // Double quote within a string
 SET quoted = "He said " _ $CHAR(34) _ "hello" _ $CHAR(34)
 WRITE quoted, !                    // He said "hello"

Construcción de cadenas en bucles

 // Build a comma-separated list
 SET result = ""
 SET sep = ""
 FOR i = 1:1:5 {
     SET result = result _ sep _ i
     SET sep = ","
 }
 WRITE result, !                    // 1,2,3,4,5

 // Alternative: build then strip trailing separator
 SET result = ""
 FOR i = 1:1:5 {
     SET result = result _ i _ ","
 }
 SET result = $E(result, 1, *-1)    // Remove trailing comma
 WRITE result, !                    // 1,2,3,4,5

Concatenación vs WRITE

 // WRITE outputs directly (more efficient for display)
 WRITE "Name: ", first, " ", last, !

 // Concatenation builds a string value (for storage/return)
 SET output = "Name: " _ first _ " " _ last
 RETURN output

Referencias de Documentación

5. Expresiones regulares

Puntos Clave

  • $MATCH(string, regex): Devuelve 1 si la cadena completa coincide con el patrón regex
  • $LOCATE(string, regex, start, end, value): Busca una coincidencia regex dentro de la cadena
  • Operador de coincidencia de patrones (?): Sintaxis nativa de patrones de ObjectScript (no regex): string ? pattern
  • Sintaxis regex ICU: $MATCH y $LOCATE usan la sintaxis de expresiones regulares ICU
  • $LOCATE devuelve posición: Devuelve la posición inicial de la coincidencia (0 si no hay coincidencia)

Notas Detalladas

Descripción general

ObjectScript ofrece dos sistemas de coincidencia de patrones: expresiones regulares ICU ($MATCH, $LOCATE) y el operador nativo de coincidencia de patrones de ObjectScript (?). Las expresiones regulares son más potentes y flexibles; el operador nativo es más simple para validaciones básicas.

$MATCH: Coincidencia de cadena completa

 // $MATCH tests if ENTIRE string matches the regex
 WRITE $MATCH("hello123", "[a-z]+\d+"), !        // 1 (matches)
 WRITE $MATCH("hello123!", "[a-z]+\d+"), !        // 0 (! not matched)

 // Email validation
 SET email = "user@example.com"
 WRITE $MATCH(email, "[^@]+@[^@]+\.[^@]+"), !     // 1

 // Phone number format
 SET phone = "555-123-4567"
 WRITE $MATCH(phone, "\d{3}-\d{3}-\d{4}"), !      // 1

 // Case-insensitive with (?i)
 WRITE $MATCH("Hello", "(?i)hello"), !             // 1

$LOCATE: Búsqueda dentro de cadena

 SET text = "The price is $42.50 today"

 // Find a number pattern
 SET pos = $LOCATE(text, "\d+\.?\d*")
 WRITE "Found at position: ", pos, !              // 16

 // With start position, end position, and matched value
 SET start = 1
 SET pos = $LOCATE(text, "\d+\.?\d*", start, .end, .matched)
 WRITE "Match: ", matched, !                      // 42.50
 WRITE "Start: ", pos, " End: ", end, !           // Start: 16 End: 21

 // Find all matches in a loop
 SET text = "abc 123 def 456 ghi 789"
 SET start = 1
 FOR {
     SET pos = $LOCATE(text, "\d+", start, .end, .matched)
     QUIT:pos=0
     WRITE "Found: ", matched, " at ", pos, !
     SET start = end
 }
 // Output:
 //   Found: 123 at 5
 //   Found: 456 at 13
 //   Found: 789 at 21

Operador nativo de coincidencia de patrones (?)

 // Pattern syntax: count + code
 // N = numeric, A = alphabetic, P = punctuation
 // E = any character, L = lowercase, U = uppercase

 // Exactly 3 digits
 WRITE "123" ? 3N, !                // 1
 WRITE "12A" ? 3N, !                // 0

 // Variable count: .N means "zero or more digits"
 WRITE "123" ? .N, !                // 1
 WRITE "" ? .N, !                   // 1

 // 1 or more alpha followed by 1 or more numeric
 WRITE "abc123" ? 1.A1.N, !         // 1

 // Literal characters in quotes
 WRITE "2025-01-15" ? 4N1"-"2N1"-"2N, !   // 1

 // US phone: (555) 123-4567
 WRITE "(555) 123-4567" ? 1"("3N1") "3N1"-"4N, !  // 1

6. $ZCONVERT para codificación

Puntos Clave

  • $ZCONVERT($ZCVT): Convierte cadenas entre codificaciones y tipos de capitalización
  • Conversión de capitalización: $ZCVT(str, "U") mayúsculas, $ZCVT(str, "L") minúsculas, $ZCVT(str, "W") tipo título
  • Dirección de codificación: "O" para codificación de salida, "I" para decodificación de entrada
  • Codificación HTML: $ZCVT(str, "O", "HTML") convierte < > & " a entidades HTML
  • Codificación URL: $ZCVT(str, "O", "URL") codifica caracteres especiales con porcentaje
  • Codificación JSON: $ZCVT(str, "O", "JSON") escapa para valores de cadena JSON
  • Codificación XML: $ZCVT(str, "O", "XML") convierte para contenido XML/XHTML

Notas Detalladas

Descripción general

$ZCONVERT (abreviado $ZCVT) es una función versátil utilizada para conversión de capitalización y codificación/decodificación de cadenas para varios formatos de salida. Es esencial para desarrollo web, integración de datos y seguridad (prevención de ataques de inyección).

Conversión de capitalización

 SET str = "Hello World"

 // Uppercase
 WRITE $ZCONVERT(str, "U"), !         // HELLO WORLD

 // Lowercase
 WRITE $ZCONVERT(str, "L"), !         // hello world

 // Title case (first letter of each word)
 SET str2 = "hello world"
 WRITE $ZCVT(str2, "W"), !            // Hello World

 // Works with Unicode characters
 SET french = "ecole"
 WRITE $ZCVT(french, "U"), !          // ECOLE

Codificación HTML (salida)

 SET html = "<script>alert('XSS')</script>"

 // Encode for safe HTML output
 WRITE $ZCVT(html, "O", "HTML"), !
 // Output: &lt;script&gt;alert(&#39;XSS&#39;)&lt;/script&gt;

 // Decode HTML entities back
 SET encoded = "&lt;b&gt;Bold&lt;/b&gt;"
 WRITE $ZCVT(encoded, "I", "HTML"), !
 // Output: <b>Bold</b>

Codificación URL

 SET query = "name=John Smith&city=New York"

 // Encode for URL
 WRITE $ZCVT(query, "O", "URL"), !
 // Output: name%3DJohn+Smith%26city%3DNew+York

 // Decode URL-encoded string
 SET encoded = "Hello%20World%21"
 WRITE $ZCVT(encoded, "I", "URL"), !
 // Output: Hello World!

Codificación JSON

 SET str = "He said ""hello"" and left"

 // Encode for JSON string value
 WRITE $ZCVT(str, "O", "JSON"), !
 // Output: He said \"hello\" and left

 // Handles control characters
 SET withTab = "Line1" _ $CHAR(9) _ "Line2"
 WRITE $ZCVT(withTab, "O", "JSON"), !
 // Output: Line1\tLine2

Codificación XML

 SET xml = "<tag attr=""value"">Data & more</tag>"

 WRITE $ZCVT(xml, "O", "XML"), !
 // Output: &lt;tag attr=&quot;value&quot;&gt;Data &amp; more&lt;/tag&gt;

Codificación UTF-8

 // Convert to/from UTF-8 bytes
 SET str = "Hello"
 SET utf8 = $ZCVT(str, "O", "UTF8")
 SET back = $ZCVT(utf8, "I", "UTF8")

Referencias de Documentación

7. Escape de caracteres especiales

Puntos Clave

  • Duplicar comillas: Incluir una comilla en una cadena duplicándola: "He said ""hello"""
  • $CHAR($C): Genera caracteres por código ASCII/Unicode: $C(34) para comilla doble
  • $ASCII($A): Obtiene el código numérico de un carácter: $A("A") devuelve 65
  • Caracteres de control: Use $CHAR para tabulación (9), nueva línea (10), retorno de carro (13)
  • Sin escapes con barra invertida: ObjectScript NO usa \ para secuencias de escape en cadenas

Notas Detalladas

Descripción general

Las cadenas de ObjectScript están delimitadas por comillas dobles. Para incluir caracteres especiales dentro de las cadenas, se duplica el carácter de comilla o se usa $CHAR para generar caracteres por su código de punto. No existen secuencias de escape con barra invertida como en C o JavaScript.

Duplicar comillas

 // Embed a double quote by doubling it
 SET msg = "He said ""hello"" to everyone"
 WRITE msg, !
 // Output: He said "hello" to everyone

 // Multiple quotes
 SET str = "The value is ""42"" not ""43"""
 WRITE str, !
 // Output: The value is "42" not "43"

 // Empty quoted string within a string
 SET str = "An empty string is """"."
 WRITE str, !
 // Output: An empty string is "".

$CHAR y $ASCII

 // $CHAR generates characters from code points
 WRITE $CHAR(65), !                 // A
 WRITE $CHAR(97), !                 // a
 WRITE $CHAR(48), !                 // 0

 // Multiple characters at once
 WRITE $CHAR(72, 101, 108, 108, 111), !   // Hello

 // Special characters
 SET tab = $CHAR(9)
 SET lf = $CHAR(10)
 SET cr = $CHAR(13)
 SET crlf = $CHAR(13, 10)
 SET quote = $CHAR(34)

 // $C shorthand
 SET pipe = $C(124)                 // |

 // $ASCII returns the code point
 WRITE $ASCII("A"), !               // 65
 WRITE $ASCII("a"), !               // 97
 WRITE $ASCII("0"), !               // 48

 // $A shorthand; get specific position
 SET str = "Hello"
 WRITE $A(str, 1), !                // 72 (H)
 WRITE $A(str, 5), !                // 111 (o)

 // -1 for position beyond string length
 WRITE $A(str, 99), !               // -1

Patrones prácticos de escape

 // Building SQL with quoted values (for illustration -- use parameters in practice!)
 SET name = "O'Brien"
 // In SQL, single quotes are doubled
 SET escaped = $REPLACE(name, "'", "''")
 WRITE "SELECT * FROM Table WHERE Name = '", escaped, "'", !
 // Output: SELECT * FROM Table WHERE Name = 'O''Brien'

 // Building JSON manually (prefer %DynamicObject in practice)
 SET key = "name"
 SET val = "John ""JD"" Doe"
 SET json = "{" _ $C(34) _ key _ $C(34) _ ":" _ $C(34) _ $ZCVT(val, "O", "JSON") _ $C(34) _ "}"
 WRITE json, !
 // Output: {"name":"John \"JD\" Doe"}

 // Build a string with mixed special characters
 SET header = "Name" _ $C(9) _ "Age" _ $C(9) _ "City"
 SET row = "Alice" _ $C(9) _ "30" _ $C(9) _ "NYC"
 WRITE header, !
 WRITE row, !
 // Tab-separated output

Verificación de caracteres

 // Check if character is a digit
 SET ch = "5"
 SET code = $A(ch)
 IF (code >= 48) && (code <= 57) {
     WRITE ch, " is a digit", !
 }

 // Check if character is uppercase letter
 SET ch = "A"
 SET code = $A(ch)
 IF (code >= 65) && (code <= 90) {
     WRITE ch, " is uppercase", !
 }

Referencias de Documentación

Resumen de Preparación para el Examen

Conceptos críticos a dominar:

  1. $PIECE vs $EXTRACT: $PIECE trabaja con delimitadores, $EXTRACT trabaja con posiciones de caracteres
  2. SET $PIECE / SET $EXTRACT: Ambos pueden modificar cadenas in situ
  3. $REPLACE vs $TRANSLATE: $REPLACE reemplaza subcadenas; $TRANSLATE mapea caracteres uno a uno
  4. Máscaras de $ZSTRIP: Conocer "<" (inicio), ">" (final), "*" (todo), y clases de caracteres (W, A, N, P)
  5. Direcciones de $ZCONVERT: "O" para codificación de salida, "I" para decodificación de entrada; "U"/"L"/"W" para capitalización
  6. $MATCH vs $LOCATE: $MATCH prueba la cadena completa; $LOCATE busca dentro de una cadena
  7. Operador de patrones (?): Sintaxis nativa con códigos (N, A, E, P, L, U) -- diferente de regex
  8. Escape de comillas: Duplicar el carácter de comilla -- no hay escapes con barra invertida en ObjectScript
  9. $CHAR/$ASCII: Convertir entre caracteres y códigos numéricos de punto
  10. $LENGTH con delimitador: $L(str, delim) cuenta piezas, no caracteres

Escenarios comunes de examen:

  • Extraer campos de registros delimitados usando $PIECE
  • Modificar piezas específicas con SET $PIECE
  • Elegir entre $REPLACE y $TRANSLATE para una tarea de transformación
  • Eliminar espacios en blanco o caracteres específicos con $ZSTRIP
  • Codificar entrada de usuario con $ZCONVERT para HTML para prevención de XSS
  • Escribir patrones regex para validación con $MATCH
  • Escapar comillas en literales de cadena
  • Usar $EXTRACT para obtener subcadenas por posición

Recomendaciones de práctica:

  • Analizar mensajes HL7 usando $PIECE con delimitadores ^ y |
  • Construir y modificar cadenas delimitadas usando SET $PIECE
  • Usar $TRANSLATE para eliminar caracteres no deseados de entrada de usuario
  • Practicar $ZSTRIP con diferentes máscaras en varios tipos de cadena
  • Codificar y decodificar cadenas con $ZCONVERT para HTML, URL, JSON y XML
  • Escribir patrones $MATCH para validación de correo electrónico, teléfono y fecha
  • Usar $LOCATE para encontrar y extraer todas las coincidencias de una cadena de texto
  • Experimentar con el operador nativo de patrones (?) para validaciones simples

Report an Issue