# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(interface|uso|down)|(range|IPs|IP's)|(vlan|trunk|switch|subinterface)|(vrf|vpn|instancia|instância)|(policy|class|classe|política|politica|qos)|(rota|roteamento|routing|bgp|ospf)|(reatribuir|agendar|data|alinhada|conexões|conexoes|fisicas|físicas)"
test_str = ("Reatribuir quando conexões físicas estiverem prontas\n"
"Ticket Rejeitado Conforme Email - 25/04/2017\n"
"NOK. Rejeitar WO. Plano não migra subinterfaces e não configura OSPF. - 02/05/2017\n"
"Ranges do plano 10.208.25.192/27 e 10.208.25.224/27 coincidindo com os IPs das interface Gi2/14 até 2/19 dos switches (Conexão com PTFNS01/02). Necessário verificar e, se for o caso, contemplar o clean-up destas interfaces no plano.\n"
"Rejeitar. A WO0317030653 (que foi rejeitada) é pré-requisito desta.\n"
"Atividade Rejeitada conforme Email - 08/05/2017 -\n"
"Atividade Rejeitada conforme email - 08/05/2017 Rejeitar.\n"
"Atividade Rejeitada Conforme Email - 08/05/2017 As vlans adicionadas no trunk não estão criadas nos switches.\n"
"Encaminhar WO quando houver data alinhada\n"
"Cancelada por OSS\n"
"Rede IP já alocada em sts.\n"
"Atividade Rejeitada - 22/05/2017 - verificamos que a WO não atende as solicitações feitas para engenharia. Acioli cobrara dos mesmos a correçao\n"
"Interface já estava migrada para instância DCN, sem necessidade de rota estática.\n"
"Devolver ticket quando houver entrega do circuito do \"lado 02\". Atividade executada parcialmente.\n"
"Falta config SWACITZ0101 e do RTEDITZ\n"
"RP/0/RSP0/CPU0:RTARRJO0101(config-bgp-nbr-af)#commit\n"
"Encaminhar ticket quando houver data alinhada para execução de atividade\n"
"Interface com tráfego de 90Mpbs\n"
"Favor, reatribuir ticket quando link tiver \"subido\".\n"
"Reencaminhar WO quando houver data alinhada para execução\n"
"Devolver WO quando houver data alinhada para atividade. Interfaces em uso.\n"
"Reatribuir ticket quando link estiver up.\n"
"Devolver WO quando houver data alinhada para atividade. Interfaces em uso.\n"
"retornar ticket quando houver alinhamento\n"
"Favor, reatribuir tioket quando houver data alinhada para migração.\n"
"Encaminhar WO quando houver data alinhada\n"
"favor prosseguir com a execução.\n"
"Quando houver data alinhada para realização dos passos 3 e 4 do plano, favor, reencaminhar WO.\n"
"Favor, reencaminhar WO quando houver data alinhada com BACKHAUL/FTTS\n"
"Todas as portas dos Switches estão bloqueadas mas configuradas para outros projetos. Como não tem o ¿default interface¿, não realizado.\n"
"Plano não contempla redundância de chassis ¿ enviado e-mail para esclarecimento da eng BBPIP\n"
"Portas em uso.\n"
"O next-hop de uma das rotas (ip route 10.208.150.64 255.255.255.252 10.208.192.39 tag 40001 name AFOZ03_IUCS_UP ) não é válida. O IP 10.208.192.39 faz parte da rede O&M SIAE de LDA02 . Além disso, as portas do switch 01 estão em uso\n"
"Encaminhar WO quando houver data alinhada / Circuito entregue\n"
"De acordo com o projeto VSS, a alocação de portas deve acompanhar o par VSS em questão, não sendo possível estender o perímetro L2, ou seja, a vlan 320 deveria estar exclusivamente no SWAVRJO0201 e a vlan 574 exclusivamente no SWAVRJO0202.\n"
"Senhores, favor, reencaminhar ticket perto de deta alianhada para integração/ migração de enodebs.\n"
"WO desconfigura interface com tráfego e com neighbor BGP UP. Favor rever configuração ou passar maiores informações")
matches = re.finditer(regex, test_str, re.IGNORECASE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
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