import re
regex = re.compile(r"(\d+\W+\w+-\d+)\W+(\w+-\w+)\W.*", flags=re.MULTILINE)
test_str = ("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")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
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 Python, please visit: https://docs.python.org/3/library/re.html