• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
  • Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
Twitter Linkedin Instagram

S4PCADEMY_Logo
  • Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
Twitter Linkedin Instagram
Technical Articles

Mejorar Regex Toy – Parte 2

By s4pcademy 


Este es el segundo de una serie de seis blogs que describen cómo mejorar el probador de expresiones regulares conocido como Regex Toy, y cada blog describe una sola mejora de sus capacidades.

Antes de aplicar el segundo parche

El blog anterior en esta serie describió cómo parchear una copia de Regex Toy para que pueda observar los espacios en blanco finales que aparecen en el patrón de expresión regular. Ejecute esa copia mejorada de Regex Toy y siga estos pasos:

  • Pegue el siguiente trabalenguas en el bloque de texto:

Una mofeta se sentó en un tocón. El zorrillo thunk el muñón apestaba y el zorrillo thunk el zorrillo apestaba.

  • Coloque una marca de verificación en la casilla de verificación EN LA TABLA.
  • Seleccione el botón Todas las ocurrencias.
  • Especifique en la ranura Regex del bloque de entrada el valor «k»: una «k» minúscula seguida de un solo espacio.
  • Presiona enter.

Como se muestra en la captura de pantalla anterior, en función de la posición del cursor cuando presionamos Intro, los espacios finales especificados en la ranura Regex se observan al buscar coincidencias en el bloque Texto, y el bloque Coincidencias ahora muestra las mismas seis coincidencias encontradas por Regex Storm, como se muestra en la siguiente captura de pantalla:

El motivo del segundo parche.

  • A diferencia de Regex Storm, Regex Toy no proporciona una forma de ver los espacios que coinciden con el patrón de expresión regular.

Como se ilustra arriba, Regex Storm usa colores de fondo verdes y azules alternos para mostrar coincidencias, pero Regex Toy usa un color de primer plano rojo, dejando que los espacios que coincidan con el patrón aparezcan de la misma manera que los espacios que no coincidan.

Aplicación del segundo parche

Con su editor ABAP favorito, edite la copia del objeto de repositorio ABAP DEMO_REGEX_TOY que contiene el primer parche y coloque la serie de líneas que se muestra a continuación en la visualización del método después de la línea final de la serie de declaraciones REPLACE ALL OCCURRENCES OF (primera y última línea, que se muestran antes y después de una línea de comentario de todos los guiones, ya existen en el código como líneas 183 y 185, respectivamente):

183      '@@tgr@@' IN TABLE result_it WITH '</b></font>'.
       " ------------------------------------
       " DEMO_REGEX_TOY enhancement #2
       " Change highlighting from single foreground color to
       " alternating background colors:
       constants    : color_red      type string
                        value 'color="#FF0000"'
                    , background_color_green
                                     type string
                        value 'style=background-color:"#B6D840"'
                    , background_color_blue
                                     type string
                        value 'style=background-color:"#98CCE8"'
                    .
       data         : color_toggle   type int4
                    , replacement_color
                                     type string
                    .
       clear sy-subrc.
       while sy-subrc is initial.
         color_toggle                = 01 - color_toggle.
         if color_toggle eq 00.
           replacement_color         = background_color_blue.
         else.
           replacement_color         = background_color_green.
         endif.
         replace first occurrence of color_red in table result_it
            with replacement_color.
       endwhile.
       " ------------------------------------
184
185    CLEAR result_html.

Este es el mismo segundo parche sin cambios del E-bite. Debería encontrar, como lo hice recientemente, que con un sistema NetWeaver 7.5 este parche hace que Regex Toy para no trabajar en absoluto! Para que funcione, debe ajustar los dos valores de las constantes denominadas background_color_green y background_color_blue, como se muestra a continuación:

Para el valor de la constante background_color_green,

de

value 'style=background-color:"#B6D840"'

a

value 'style="background-color:#B6D840"'

Para el valor de la constante background_color_blue,

de

value 'style=background-color:"#98CCE8"'

a

value 'style="background-color:#98CCE8"'

Observe que en ambos casos el cambio sutil es que el valor que sigue a la etiqueta HTML “style=” debe incluir la cadena ‘background-color:’ entre comillas.

Aparte: Cuando comencé a investigar por qué el parche original de E-bite ya no funcionaba en mi versión de Netweaver 7.5, aprendí que la etiqueta HTML ‘fuente’ ya no es compatible con HTML5, y que se recomienda que la etiqueta ‘estilo’ sea usado en su lugar. Supongo que nunca sabré si ese parche original realmente funcionó o si moví por error la ubicación de las comillas de apertura antes de que el E-bite se imprimiera, pero suponiendo que funcionó, sospecho que, en algún momento después del Netweaver 7.4 versión que usé originalmente, es posible que SAP haya actualizado su compatibilidad con la representación de HTML para cumplir con HTML5, y puede explicar por qué el parche original ya no se reconoce como HTML válido.

Después de aplicar el segundo parche

Ahora activa el programa y ejecútalo usando el mismo proceso descrito anteriormente:

  • Pegue el mismo trabalenguas en el bloque de texto.
  • Coloque una marca de verificación en la casilla de verificación EN LA TABLA.
  • Seleccione el botón Todas las ocurrencias.
  • Especifique en la ranura Regex del bloque de entrada el valor «k», como se había especificado con Regex Storm.
  • Presiona enter.

Como se muestra en la captura de pantalla anterior, debería encontrar que ahora usa el mismo tipo de color de fondo verde y azul alternado para identificar aquellas partes del texto que coinciden con el patrón Regex, como se usa con Regex Storm, y ahora esos espacios coinciden con el el patrón aparece resaltado.

¿Que sigue?

Ahora repita el proceso con Regex Storm y Regex Toy, pero esta vez cambie el patrón de expresión regular a la siguiente cadena de 2 palabras

la mofeta

e indicar con ambos probadores que ignoren mayúsculas y minúsculas.

Con Regex Storm deberías ver esto:

Con Regex Toy deberías ver esto:

Como se muestra en la captura de pantalla anterior, debe encontrar que Regex Toy solo encuentra la primera de las dos cadenas encontradas por Regex Storm.

Mientras que el segundo parche proporciona una mejora para Regex Toy al permitir que se identifiquen los espacios que coinciden con el patrón, no puede encontrar la cadena «la mofeta» donde implícitamente se divide en dos líneas en el bloque de texto. Este problema se aborda en el próximo blog de esta serie, Mejorar Regex Toy – Parte 3.



Source link


mejorarparteRegexToy

Artículos relacionados


#Performance  ·  sap hana workload management  ·  Technical Articles
Inmersión profunda en la gestión de la carga de trabajo de HANA, parte II
Technical Articles
Mejorar Regex Toy – Parte 1
RFC Gateway  ·  spxpg  ·  Technical Articles
Seguridad de puerta de enlace RFC, parte 8: ejecución de comandos del sistema operativo mediante sapxpg

Deja tu comentario Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

Restablecimiento de contraseña entre clientes | Blogs de SAP
Previo
Localización de SAP Concur: Servicio de integración de tarjetas IC
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.
Cookies Para que este sitio funcione adecuadamente, a veces instalamos en los dispositivos de los usuarios pequeños ficheros de datos, conocidos como cookies. La mayoría de los grandes sitios web también lo hacen.
Aceptar
Cambiar ajustes
Configuración de Cookie Box
Configuración de Cookie Box

Ajustes de privacidad

Decida qué cookies quiere permitir. Puede cambiar estos ajustes en cualquier momento. Sin embargo, esto puede hacer que algunas funciones dejen de estar disponibles. Para obtener información sobre eliminar las cookies, por favor consulte la función de ayuda de su navegador. Aprenda más sobre las cookies que usamos.

Con el deslizador, puede habilitar o deshabilitar los diferentes tipos de cookies:

  • Bloquear todas
  • Essentials
  • Funcionalidad
  • Análisis
  • Publicidad

Este sitio web hará:

Este sitio web no:

  • Esencial: recuerde su configuración de permiso de cookie
  • Esencial: Permitir cookies de sesión
  • Esencial: Reúna la información que ingresa en un formulario de contacto, boletín informativo y otros formularios en todas las páginas
  • Esencial: haga un seguimiento de lo que ingresa en un carrito de compras
  • Esencial: autentica que has iniciado sesión en tu cuenta de usuario
  • Esencial: recuerda la versión de idioma que seleccionaste
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location
  • Recuerde sus detalles de inicio de sesión
  • Esencial: recuerde su configuración de permiso de cookie
  • Esencial: Permitir cookies de sesión
  • Esencial: Reúna la información que ingresa en un formulario de contacto, boletín informativo y otros formularios en todas las páginas
  • Esencial: haga un seguimiento de lo que ingresa en un carrito de compras
  • Esencial: autentica que has iniciado sesión en tu cuenta de usuario
  • Esencial: recuerda la versión de idioma que seleccionaste
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location
Guardar y cerrar