Regular Expressions 101

Save & Manage Regex

  • Current Version: 1
  • Save & Share
  • Community Library

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression
Processing...

Test String

Code Generator

Generated Code

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "Actua como el mejor programador del mundo en SAS y dime con ejemplos sobre mi propio programa como podria usar la fucnion intck o cualquier otra si quiero calcular las horas que pasan desde que una operacion entra por sistema, hasta que se financia. Y teniendo en cuenta que de 14:00 a 15:00 no tiene que computarse ya que son horas de descanso (solo queremos contar las horas de trabajo) y que si una operacion transcurre en uno de los 5 sabados que se trabaja al año los cuales tengo en una tabla temporal (sabadosCurrar), cuente esas horas tambien, en el resto de sabados, domingos y festivos, que no los cuente, que tambien estarán en otra tabla en work (fiestas)"; final String string = "Entiendo, necesitas ajustar la macro para que considere los campos fecha_recibido y fecha_financiado, además de los días festivos almacenados en dos tablas diferentes: sabadosFESTIVOS y FIESTA. La macro deberá sumar horas solo para días laborables y los sábados especiales, excluyendo los días festivos que no son sábados.\n\n" + "Voy a modificar el código para incluir estas condiciones:\n\n" + "sas\n" + "Copy code\n" + "%macro calcularHorasTrabajo(fechaRecibido, fechaFinanciado, sabadosFestivos, fiesta);\n" + " %let diasLaborables = 0;\n" + " %let diasSabadosEspeciales = 0;\n" + " %let horasTrabajo = 0;\n\n" + " %let fechaActual = &fechaRecibido;\n\n" + " %do %until (%sysfunc(intnx(day, &fechaActual, 1, s)) > &fechaFinanciado);\n" + " %let diaSemana = %sysfunc(weekday(&fechaActual));\n" + " %let esFestivo = %sysfunc(lookupn(&fechaActual, &fiesta)) ne .;\n\n" + " /* No contar días festivos */\n" + " %if &esFestivo %then %do;\n" + " /* No hacer nada si es día festivo */\n" + " %end;\n" + " %else %do;\n" + " /* Contar como día laborable si no es sábado ni domingo */\n" + " %if &diaSemana ne 1 and &diaSemana ne 7 %then %do;\n" + " %let diasLaborables = %eval(&diasLaborables + 1);\n" + " %end;\n" + " /* Verificar si es un sábado especial */\n" + " %else %if &diaSemana eq 7 and %sysfunc(lookupn(&fechaActual, &sabadosFestivos)) ne . %then %do;\n" + " %let diasSabadosEspeciales = %eval(&diasSabadosEspeciales + 1);\n" + " %end;\n" + " %end;\n\n" + " %let fechaActual = %sysfunc(intnx(day, &fechaActual, 1, s));\n" + " %end;\n\n" + " %let horasTrabajo = %eval((&diasLaborables * 8) + (&diasSabadosEspeciales * 5));\n\n" + " &horasTrabajo\n" + "%mend calcularHorasTrabajo;\n" + "Uso de la Macro\n" + "Para usar esta macro y calcular las horas trabajadas entre fecha_recibido y fecha_financiado para cada persona, considerando los sábados especiales y los días festivos, puedes hacer lo siguiente:\n\n" + "sas\n" + "Copy code\n" + "data horas_trabajadas;\n" + " set tu_tabla_personas; /* Reemplaza con el nombre de tu tabla de personas */\n" + " horas = %calcularHorasTrabajo(fecha_recibido, fecha_financiado, work.sabadosFESTIVOS, work.FIESTA);\n" + "run;\n" + "Este código asume que tienes una tabla de personas con las columnas fecha_recibido y fecha_financiado. La macro se aplica a cada fila de esta tabla para calcular las horas trabajadas, excluyendo los días festivos y considerando los sábados especiales.\n\n" + "Notas Finales\n" + "Asegúrate de que las fechas en tus tablas estén en un formato consistente y que SAS pueda interpretarlas correctamente.\n" + "Esta macro utiliza las funciones lookupn y intnx de SAS, asegúrate de que las tablas sabadosFESTIVOS y FIESTA estén estructuradas de tal manera que estas funciones puedan encontrar correctamente los días festivos y los sábados especiales.\n" + "Como siempre, es importante probar la macro con diferentes conjuntos de datos para asegurarse de que los cálculos sean correctos en tu contexto específico.\n" + "User\n" + "para ejecutar este codigo que tipo de datos tienen que ser las tablas sabadosfestivos y fiesta? como tendria que incluirlo en sas si no las tengo lncluidas ya para saber el formato quqe tienen que tenre para ejecutar la macro que me ha pasado\n" + "ChatGPT\n" + "Para ejecutar correctamente la macro que te proporcioné, las tablas sabadosFESTIVOS y FIESTA deben estar formateadas de una manera específica. Aquí te detallo el tipo de datos que deben tener y cómo podrías incluirlas en SAS:\n\n" + "Formato de las Tablas sabadosFESTIVOS y FIESTA\n" + "Tablas de Días Festivos (sabadosFESTIVOS y FIESTA):\n" + "Deben contener al menos una columna que almacene las fechas de los días festivos.\n" + "El formato de la fecha debe ser un formato de fecha reconocido por SAS (por ejemplo, DATE9.).\n" + "Idealmente, estas tablas deben tener una sola columna y cada fila representa un día festivo diferente.\n" + "Ejemplo de Cómo Crear estas Tablas en SAS\n" + "Si aún no tienes estas tablas en tu entorno SAS, aquí tienes un ejemplo de cómo podrías crearlas manualmente:\n\n" + "sas\n" + "Copy code\n" + "/* Crear tabla de sábados festivos */\n" + "data work.sabadosFESTIVOS;\n" + " format fecha DATE9.;\n" + " input fecha :DATE9.;\n" + " datalines;\n" + "20240106\n" + "20240203\n" + "20240303\n" + "20240407\n" + "20240505\n" + ";\n" + "run;\n\n" + "/* Crear tabla de otros días festivos */\n" + "data work.FIESTA;\n" + " format fecha DATE9.;\n" + " input fecha :DATE9.;\n" + " datalines;\n" + "20240101\n" + "20240501\n" + "20241225\n" + ";\n" + "run;"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); final Matcher matcher = pattern.matcher(string); while (matcher.find()) { System.out.println("Full match: " + matcher.group(0)); for (int i = 1; i <= matcher.groupCount(); i++) { System.out.println("Group " + i + ": " + matcher.group(i)); } } } }

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html