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
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 = "(\\d+\\W+\\w+-\\d+)\\W+(\\w+-\\w+)\\W.*"; final String string = "46427 MXSLBIONBO-70 dossier-service - Servicios Rest - Springboot- La URI a nivel de entidad de negocio, será siempre un sustantivo plural.\n" + "47926 MXSLBIONBO-114 selfie-service-- Generales- ¿No se suprimen o ignoran Excepciones?\n" + "47923 MXSLBIONBO-111 importer-service - Generales- ¿No se suprimen o ignoran Excepciones?\n" + "45745 MXSLBIONBO-12 cipher-service- Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, la excepción cachada no deben enviarse al log.\n" + "44879 MXSLBIONBO-22 video-service-Generales- ¿La documentación es descriptiva?\n" + "47928 MXSLBIONBO-116 video-service-Generales- ¿La documentación es descriptiva?\n" + "44881 MXSLBIONBO-24 video-service- Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, la excepción cachada no deben enviarse al log.\n" + "45744 MXSLBIONBO-11 cipher-service-Generales- ¿No se suprimen o ignoran Excepciones?\n" + "47919 MXSLBIONBO-107 gateway-chunk - Generales- ¿No se suprimen o ignoran Excepciones?,\n" + "46422 MXSLBIONBO-65 importer-service - Servicios Rest - Springboot- Debe implementar la interfaz “java.io.Serializable”.\n" + "47912 MXSLBIONBO-100 cipher-service- Generales- ¿Las clases tienen alta cohesión y bajo acoplamiento?\n" + "47908 MXSLBIONBO-96 cipher-service- Servicios Rest - Springboot- Debe implementar la interfaz “java.io.Serializable”.\n" + "46426 MXSLBIONBO-69 dossier-service - Servicios Rest - Springboot- Debe implementar la interfaz “java.io.Serializable”.\n" + "46408 MXSLBIONBO-51 persistence-service - Servicios Rest - Springboot- Debe implementar la interfaz “java.io.Serializable”.\n" + "46402 MXSLBIONBO-45 persistence-service-Generales- ¿La documentación es descriptiva?\n" + "46423 MXSLBIONBO-66 dossier-service-Generales- ¿La documentación es descriptiva?\n" + "46431 MXSLBIONBO-74 document-service- Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, se le debe de enviar la excepción cachada.\n" + "44880 MXSLBIONBO-23 video-service- Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, se le debe de enviar la excepción cachada.\n" + "46716 MXSLBIONBO-78 selfie-service- Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, se le debe de enviar la excepción cachada.\n" + "45746 MXSLBIONBO-13 cipher-service- Generales - ¿Los recursos son liberados dentro de un bloque finally?\n" + "46432 MXSLBIONBO-75 cipher-service-Servicios Rest - Springboot- No se debe atrapar o lanzar excepciones genéricas (Throwable, Exception, o RuntimeException).\n" + "46421 MXSLBIONBO-64 importer-service - Servicios Rest - Springboot- Deberán estar contenidos en un paquete “model”.\n" + "46715 MXSLBIONBO-77 selfie-service-Generales- ¿La documentación es descriptiva?\n" + "45747 MXSLBIONBO-14 document-service-Generales- ¿La documentación es descriptiva?\n" + "44889 MXSLBIONBO-32 selfie-service-Generales- ¿La documentación es descriptiva?\n" + "46417 MXSLBIONBO-60 importer-service -Generales- ¿Los recursos son liberados dentro de un bloque finally?\n" + "45737 MXSLBIONBO-4 cipher-service-Generales- ¿La documentación es descriptiva?\n" + "47927 MXSLBIONBO-115 persistence-service-Generales- ¿La documentación es descriptiva?\n" + "47925 MXSLBIONBO-113 selfie-service-Servicios Rest - Springboot- No se debe atrapar o lanzar excepciones genéricas (Throwable, Exception, o RuntimeException).\n" + "47924 MXSLBIONBO-112 persistence-service-Generales- ¿La documentación es descriptiva?\n" + "47922 MXSLBIONBO-110 importer-service-Servicios Rest - Springboot- No se debe atrapar o lanzar excepciones genéricas (Throwable, Exception, o RuntimeException).\n" + "47921 MXSLBIONBO-109 importer-service-Generales- ¿La documentación es descriptiva?\n" + "47920 MXSLBIONBO-108 gateway-chunk-service- Servicios Rest - Springboot- No se debe atrapar o lanzar excepciones genéricas (Throwable, Exception, o RuntimeException).\n" + "47918 MXSLBIONBO-106 gateway-chunk-service-Generales- ¿La documentación es descriptiva?\n" + "47917 MXSLBIONBO-105 cipher-service- Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, la excepción cachada no deben enviarse al log.\n" + "47916 MXSLBIONBO-104 cipher-service- Generales- ¿No se implementan cosas fuera de su capa?\n" + "47915 MXSLBIONBO-103 cipher-service- Servicios Rest - Springboot- El acceso a cualquier origen de datos, como pueden ser bases de datos, colas, llamados a otros WS, Archivos, etc., debe estar en esta capa.\n" + "47914 MXSLBIONBO-102 cipher-service- Servicios Rest - Springboot- La URI a nivel de entidad de negocio, será siempre un sustantivo plural.\n" + "47913 MXSLBIONBO-101 cipher-service- Servicios Rest - Springboot- URI’s definidas en minúsculas y con notación snake_case.\n" + "47911 MXSLBIONBO-99 cipher-service- Generales- ¿No se suprimen o ignoran Excepciones?\n" + "47910 MXSLBIONBO-98 cipher-service- Servicios Rest - Springboot- No se debe atrapar o lanzar excepciones genéricas (Throwable, Exception, o RuntimeException).\n" + "47909 MXSLBIONBO-97 cipher-service- Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, se le debe de enviar la excepción cachada.”.\n" + "47907 MXSLBIONBO-95 cipher-service- Servicios Rest - Springboot- Deberán estar contenidos en un paquete “model”.\n" + "47906 MXSLBIONBO-94 cipher-service-Generales- ¿La documentación es descriptiva?\n" + "47905 MXSLBIONBO-93 cipher-service-Generales- ¿Los recursos son liberados dentro de un bloque finally?\n" + "47904 MXSLBIONBO-92 bioonboarding-web-Angular 2+- El almacenamiento local, llamadas de servicios remotos (rest, soap, etc.), debe de quedar en servicios.\n" + "47903 MXSLBIONBO-91 bioonboarding-web-Angular 2+- ¿La documentación es descriptiva?\n" + "46410 MXSLBIONBO-53 persistence-service - Servicios Rest - Springboot- URI’s definidas en minúsculas y con notación snake_case.\n" + "47158 MXSLBIONBO-90 gateway-chunk-service- Servicios Rest - Springboot- Se deberá de realizar la definición de un @ExceptionHandler general.\n" + "47157 MXSLBIONBO-89 gateway-chunk-service-Generales- ¿No se implementan cosas fuera de su capa?\n" + "47156 MXSLBIONBO-88 gateway-chunk-service- Servicios Rest - Springboot- La URI a nivel de entidad de negocio, será siempre un sustantivo plural.\n" + "47155 MXSLBIONBO-87 gateway-chunk-service- Servicios Rest - Springboot- Debe implementar la interfaz “java.io.Serializable”.\n" + "47154 MXSLBIONBO-86 gateway-chunk-service- Servicios Rest - Springboot- Deberán estar contenidos en un paquete “model”.\n" + "47153 MXSLBIONBO-85 gateway-chunk-service-Generales- ¿No se suprimen o ignoran Excepciones?\n" + "47152 MXSLBIONBO-84 gateway-chunk-service-Generales- ¿La documentación es descriptiva?\n" + "46717 MXSLBIONBO-79 video-service- Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, la excepción cachada no deben enviarse al log.\n" + "46718 MXSLBIONBO-80 bioonboarding-web- Angular 2+- El nombre de los archivos deberá seguir la convención: modulo.tipo.ts.\n" + "46719 MXSLBIONBO-81 bioonboarding-web- Angular 2+- Existe un módulo principal de la aplicación, y módulos por cada funcionalidad, ocupando un folder por modulo.\n" + "46720 MXSLBIONBO-82 bioonboarding-web- Angular 2+- Documentación\n" + "46721 MXSLBIONBO-83 bioonboarding-web- Angular 2+- El almacenamiento local, llamadas de servicios remotos (rest, soap, etc.), debe de quedar en servicios.\n" + "46714 MXSLBIONBO-76 selfie-service-Generales- ¿No se suprimen o ignoran Excepciones?\n" + "44887 MXSLBIONBO-30 video-service- Servicios Rest - Springboot- URI’s definidas en minúsculas y con notación snake_case.\n" + "44886 MXSLBIONBO-29 video-service- Servicios Rest - Springboot- La URI a nivel de entidad de negocio, será siempre un sustantivo plural.\n" + "44882 MXSLBIONBO-25 video-service -Generales- ¿Las clases tienen alta cohesión y bajo acoplamiento?\n" + "46430 MXSLBIONBO-73 document-service- Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, la excepción cachada no deben enviarse al log.\n" + "46429 MXSLBIONBO-72 dossier-service - Servicios Rest - Springboot- Se deberá de realizar la definición de un @ExceptionHandler general.\n" + "46428 MXSLBIONBO-71 dossier-service - Servicios Rest - Springboot- URI’s definidas en minúsculas y con notación snake_case.\n" + "46427 MXSLBIONBO-70 dossier-service - Servicios Rest - Springboot- La URI a nivel de entidad de negocio, será siempre un sustantivo plural.\n" + "46425 MXSLBIONBO-68 dossier-service - Servicios Rest - Springboot- Deberán estar contenidos en un paquete “model”.\n" + "46424 MXSLBIONBO-67 dossier-service- Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, se le debe de enviar la excepción cachada.\n" + "46420 MXSLBIONBO-63 importer-service - Servicios Rest - Springboot- Debe usar SLF4J como framework de loggin\n" + "46419 MXSLBIONBO-62 importer-service - Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, se le debe de enviar la excepción cachada.\n" + "46418 MXSLBIONBO-61 importer-service - Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, la excepción cachada no deben enviarse al log.\n" + "46416 MXSLBIONBO-59 importer-service -Generales- ¿No se suprimen o ignoran Excepciones?\n" + "46415 MXSLBIONBO-58 importer-service-Servicios Rest - Springboot- No se debe atrapar o lanzar excepciones genéricas (Throwable, Exception, o RuntimeException).\n" + "46414 MXSLBIONBO-57 importer-service - Servicios Rest - Springboot- Las excepciones deberán de ser controladas de forma independiente en cada una de las capas y no deberán de ser propagadas directamente a capas superiores.\n" + "46413 MXSLBIONBO-56 importer-service -Generales- ¿Las clases tienen alta cohesión y bajo acoplamiento?\n" + "46411 MXSLBIONBO-54 persistence-service - Servicios Rest - Springboot- Se deberá de realizar la definición de un @ExceptionHandler general.\n" + "46409 MXSLBIONBO-52 persistence-service - Servicios Rest - Springboot- La URI a nivel de entidad de negocio, será siempre un sustantivo plural.\n" + "46407 MXSLBIONBO-50 persistence-service - Servicios Rest - Springboot- Deberán estar contenidos en un paquete “model”.\n" + "46406 MXSLBIONBO-49 persistence-service -Servicios Rest - Springboot- No se debe atrapar o lanzar excepciones genéricas (Throwable, Exception, o RuntimeException).\n" + "46405 MXSLBIONBO-48 persistence-service - Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, se le debe de enviar la excepción cachada.\n" + "46404 MXSLBIONBO-47 persistence-service - Servicios Rest - Springboot- Las excepciones deberán de ser controladas de forma independiente en cada una de las capas y no deberán de ser propagadas directamente a capas superiores.\n" + "46403 MXSLBIONBO-46 persistence-service-Generales- ¿Las clases tienen alta cohesión y bajo acoplamiento?\n" + "46401 MXSLBIONBO-44 selfie-service-Generales- ¿Ninguna sentencia SQL hace uso de select *?\n" + "46400 MXSLBIONBO-43 selfie-service-Generales- ¿No se suprimen o ignoran Excepciones?\n" + "44899 MXSLBIONBO-42 selfie-service - Servicios Rest - Springboot- Se deberá de realizar la definición de un @ExceptionHandler general.\n" + "44898 MXSLBIONBO-41 selfie-service - Servicios Rest - Springboot- URI’s definidas en minúsculas y con notación snake_case.\n" + "44897 MXSLBIONBO-40 selfie-service - Servicios Rest - Springboot- La URI a nivel de entidad de negocio, será siempre un sustantivo plural.\n" + "44894 MXSLBIONBO-37 selfie-service-Servicios Rest - Springboot- No se debe atrapar o lanzar excepciones genéricas (Throwable, Exception, o RuntimeException).\n" + "44893 MXSLBIONBO-36 selfie-service-Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, la excepción cachada no deben enviarse al log.\n" + "44892 MXSLBIONBO-35 selfie-service - Servicios Rest - Springboot- Las excepciones deberán de ser controladas de forma independiente en cada una de las capas y no deberán de ser propagadas directamente a capas superiores.\n" + "44891 MXSLBIONBO-34 selfie-service-Generales- ¿Las clases tienen alta cohesión y bajo acoplamiento?\n" + "44890 MXSLBIONBO-33 selfie-service - Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, se le debe de enviar la excepción cachada.\n" + "44888 MXSLBIONBO-31 video-service- Servicios Rest - Springboot- Se deberá de realizar la definición de un @ExceptionHandler general.\n" + "45754 MXSLBIONBO-21 document-service - Servicios Rest - Springboot- Al manejar una excepción, si se crea una nueva excepción, la excepción cachada no deben enviarse al log.\n" + "45753 MXSLBIONBO-20 document-service - Generales- ¿Las clases tienen alta cohesión y bajo acoplamiento?\n" + "45752 MXSLBIONBO-19 document-service-Generales- ¿No se suprimen o ignoran Excepciones?\n" + "45751 MXSLBIONBO-18 document-service -Generales- ¿Las clases tienen alta cohesión y bajo acoplamiento?\n" + "45750 MXSLBIONBO-17 document-service - Servicios Rest - Springboot- Deberán estar contenidos en un paquete “model”.\n" + "45749 MXSLBIONBO-16 document-service - Servicios Rest - Springboot- Se deberá de realizar la definición de un @ExceptionHandler general.\n" + "45748 MXSLBIONBO-15 document-service - Servicios Rest - Springboot- La URI a nivel de entidad de negocio, será siempre un sustantivo plural.\n" + "45743 MXSLBIONBO-10 cipher-service-Generales- ¿Las clases tienen alta cohesión y bajo acoplamiento?\n" + "45742 MXSLBIONBO-9 cipher-service- Servicios Rest - Springboot- Deberán estar contenidos en un paquete “model”.\n" + "45741 MXSLBIONBO-8 cipher-service- Servicios Rest - Springboot- Se deberá de realizar la definición de un @ExceptionHandler general.\n" + "45740 MXSLBIONBO-7 cipher-service- Servicios Rest - Springboot- La URI a nivel de entidad de negocio, será siempre un sustantivo plural.\n" + "45739 MXSLBIONBO-6 cipher-service-Servicios Rest - Springboot- URI’s definidas en minúsculas y con notación snake_case.\n" + "45738 MXSLBIONBO-5 cipher-service-Servicios Rest - Springboot- Todos los endpoints REST deberán regresar un código HTTP"; 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