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

$re = '/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)/m'; $str = '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. Voy a modificar el código para incluir estas condiciones: sas Copy code %macro calcularHorasTrabajo(fechaRecibido, fechaFinanciado, sabadosFestivos, fiesta); %let diasLaborables = 0; %let diasSabadosEspeciales = 0; %let horasTrabajo = 0; %let fechaActual = &fechaRecibido; %do %until (%sysfunc(intnx(day, &fechaActual, 1, s)) > &fechaFinanciado); %let diaSemana = %sysfunc(weekday(&fechaActual)); %let esFestivo = %sysfunc(lookupn(&fechaActual, &fiesta)) ne .; /* No contar días festivos */ %if &esFestivo %then %do; /* No hacer nada si es día festivo */ %end; %else %do; /* Contar como día laborable si no es sábado ni domingo */ %if &diaSemana ne 1 and &diaSemana ne 7 %then %do; %let diasLaborables = %eval(&diasLaborables + 1); %end; /* Verificar si es un sábado especial */ %else %if &diaSemana eq 7 and %sysfunc(lookupn(&fechaActual, &sabadosFestivos)) ne . %then %do; %let diasSabadosEspeciales = %eval(&diasSabadosEspeciales + 1); %end; %end; %let fechaActual = %sysfunc(intnx(day, &fechaActual, 1, s)); %end; %let horasTrabajo = %eval((&diasLaborables * 8) + (&diasSabadosEspeciales * 5)); &horasTrabajo %mend calcularHorasTrabajo; Uso de la Macro 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: sas Copy code data horas_trabajadas; set tu_tabla_personas; /* Reemplaza con el nombre de tu tabla de personas */ horas = %calcularHorasTrabajo(fecha_recibido, fecha_financiado, work.sabadosFESTIVOS, work.FIESTA); run; 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. Notas Finales Asegúrate de que las fechas en tus tablas estén en un formato consistente y que SAS pueda interpretarlas correctamente. 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. 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. User 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 ChatGPT 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: Formato de las Tablas sabadosFESTIVOS y FIESTA Tablas de Días Festivos (sabadosFESTIVOS y FIESTA): Deben contener al menos una columna que almacene las fechas de los días festivos. El formato de la fecha debe ser un formato de fecha reconocido por SAS (por ejemplo, DATE9.). Idealmente, estas tablas deben tener una sola columna y cada fila representa un día festivo diferente. Ejemplo de Cómo Crear estas Tablas en SAS Si aún no tienes estas tablas en tu entorno SAS, aquí tienes un ejemplo de cómo podrías crearlas manualmente: sas Copy code /* Crear tabla de sábados festivos */ data work.sabadosFESTIVOS; format fecha DATE9.; input fecha :DATE9.; datalines; 20240106 20240203 20240303 20240407 20240505 ; run; /* Crear tabla de otros días festivos */ data work.FIESTA; format fecha DATE9.; input fecha :DATE9.; datalines; 20240101 20240501 20241225 ; run;'; preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); // Print the entire match result var_dump($matches);

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 PHP, please visit: http://php.net/manual/en/ref.pcre.php