Permitir caracteres especiales con su forma literal en StyleBook

Last published : Oct 02, 2026
En la definición de StyleBook, puede usar cadenas textuales cuando los caracteres especiales de una cadena deben tomar su forma literal. Estas cadenas pueden contener caracteres de escape, barras invertidas, comillas, paréntesis, espacios en blanco, corchetes, etc.
En los StyleBooks, puede incluir expresiones de política de NetScaler en su forma literal utilizando cadenas textuales. Las expresiones de política suelen contener caracteres especiales. Sin cadenas textuales, tendría que escapar los caracteres especiales dividiendo las cadenas en subcadenas.
Para crear una cadena textual, encapsule una cadena entre caracteres especiales de la siguiente manera:
~{string}~
Puede usar cadenas textuales en las expresiones de StyleBook.
Nota
No utilice la secuencia de caracteres }~ en una cadena de entrada porque esta secuencia indica el final de una cadena textual.
Ejemplo:
---
name: test-deny-url
namespace: citrix.adc.stylebooks
version: "6.2"
display-name: StyleBook for creating an AppFw profile
description: This Stylebook configures an AppFw config.
schema-version: "1.0"
import-stylebooks:
  -
    namespace: netscaler.nitro.config
    prefix: ns
    version: "13.0"
parameters:
  -
    name: name
    type: string
    required: true
substitutions:
 default-deny-urls-regex:
     "Command_injection_attack": str("([ /=]|\\t|\\n)(ls|cat)([ ;'" + "\\\"&].*)?$")
     "Command_injection_attack2": ~{([ /=]|\t|\n)(ls|rm|cat)([ ;'\"&].*)?$}~
components:
  -
    name: appfw-profile-comp
    type: ns::appfwprofile
    properties:
      name: $parameters.name
      type: ["XML"]
    components:
          -
            name: appfw-profile-denyurl-default-binding-subcomp-all
            type: ns::appfwprofile_denyurl_binding
            properties:
                name: $parent.properties.name
                denyurl?: $substitutions.default-deny-urls-regex["Command_injection_attack"]
                state?: "ENABLED"
          -
            name: appfw-profile-denyurl-default-binding-subcomp-all2
            type: ns::appfwprofile_denyurl_binding
            properties:
                name: $parent.properties.name
                denyurl?: $substitutions.default-deny-urls-regex["Command_injection_attack2"]
                state?: "ENABLED"
En este ejemplo, las sustituciones default-deny-urls-regex tienen una expresión textual.
  • "Command_injection_attack": str("([ /=]|\\t|\\n)(ls|cat)([ ;'" + "\\\"&].*)?$"): StyleBook lo procesa como una expresión regular.
  • "Command_injection_attack2": ~{([ /=]|\t|\n)(ls|rm|cat)([ ;'\"&].*)?$}~: StyleBook lo procesa como una expresión textual. Los caracteres especiales de esta cadena toman la forma literal.

Concatenar varias cadenas textuales

Puede concatenar cadenas textuales con cadenas regulares o cadenas con interpolaciones. Al hacerlo, StyleBook omite la interpretación solo para las cadenas textuales. Utilice el operador más (+) entre las cadenas para concatenar.
Ejemplo:
value: "~{\"id\": \"}~ + %{$atom.key}% + ~{\", \"value\": \"}~ + %{$atom.value}% + ~{\"}~"
En este ejemplo, se interpretan %{$atom.key}% y %{$atom.value}%. Y la interpretación se omite para el resto.