# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"<\/?soap:(Envelope|Body).*>"
test_str = ("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
" <soap:Body>\n"
"<HentMVAKodeResponse xmlns=\"http://rep.baerum.kommune.no/Oekonomi/Regnskap/Xml/Schema/20120401\" xmlns:ns2=\"http://rep.baerum.kommune.no/Teknisk/Kontekst/Xml/Schema/20090317\" xmlns:ns3=\"http://rep.baerum.kommune.no/Felles/Xml/Schema/20090322\" xmlns:ns4=\"http://rep.baerum.kommune.no/Teknisk/Status/Xml/Schema/20081218\" xmlns:ns5=\"http://rep.baerum.kommune.no/Felles/Xml/Schema/20120401\" xmlns:ns6=\"http://rep.baerum.kommune.no/Personal/Xml/Schema/20090322\">\n"
" <MVAKodeListe>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>8</MVAKode>\n"
" <MVAKodeTekst>0 % kompensasjonberettiget</MVAKodeTekst>\n"
" <MVAKodeProsent>0</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>19500102</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>28</MVAKode>\n"
" <MVAKodeTekst>0 % inngående avgift</MVAKodeTekst>\n"
" <MVAKodeProsent>0</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-02</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>30</MVAKode>\n"
" <MVAKodeTekst>Uten utgående avgift</MVAKodeTekst>\n"
" <MVAKodeProsent>0</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Utgaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-02</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>1</MVAKode>\n"
" <MVAKodeTekst>25 % kompensasjonsberettiget</MVAKodeTekst>\n"
" <MVAKodeProsent>25</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.25</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>27</MVAKode>\n"
" <MVAKodeTekst>100 % inngående avgift</MVAKodeTekst>\n"
" <MVAKodeProsent>0</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-02</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>7</MVAKode>\n"
" <MVAKodeTekst>100 % kompensasjonberettiget</MVAKodeTekst>\n"
" <MVAKodeProsent>0</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-02</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>31</MVAKode>\n"
" <MVAKodeTekst>25 % inngående avgift</MVAKodeTekst>\n"
" <MVAKodeProsent>25</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.25</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Utgaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>32</MVAKode>\n"
" <MVAKodeTekst>15 % utgående avgift</MVAKodeTekst>\n"
" <MVAKodeProsent>15</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.15</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Utgaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>33</MVAKode>\n"
" <MVAKodeTekst>8 % utgående avgift</MVAKodeTekst>\n"
" <MVAKodeProsent>8</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.08</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Utgaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>21</MVAKode>\n"
" <MVAKodeTekst>25 % inngående avgift</MVAKodeTekst>\n"
" <MVAKodeProsent>25</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.25</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>22</MVAKode>\n"
" <MVAKodeTekst>15 % inngående avgift</MVAKodeTekst>\n"
" <MVAKodeProsent>15</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.15</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>23</MVAKode>\n"
" <MVAKodeTekst>8 % inngående avgift</MVAKodeTekst>\n"
" <MVAKodeProsent>8</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.08</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2015-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>29</MVAKode>\n"
" <MVAKodeTekst>25 % inngående avgift tjenestekjøp utland</MVAKodeTekst>\n"
" <MVAKodeProsent>25</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.25</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>2</MVAKode>\n"
" <MVAKodeTekst>15 % kompensasjonberettiget</MVAKodeTekst>\n"
" <MVAKodeProsent>15</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.15</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>3</MVAKode>\n"
" <MVAKodeTekst>8 % kompensasjonberettiget</MVAKodeTekst>\n"
" <MVAKodeProsent>8</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.08</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>9</MVAKode>\n"
" <MVAKodeTekst>25 % komp. tjenestekjøp utland</MVAKodeTekst>\n"
" <MVAKodeProsent>25</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.25</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>OFF</MVAKode>\n"
" <MVAKodeTekst>25 % mva. motpost bedrift 1</MVAKodeTekst>\n"
" <MVAKodeProsent>-25</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>-0.25</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>6</MVAKode>\n"
" <MVAKodeTekst/>\n"
" <MVAKodeProsent>0</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>2015-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" <MVAKodeStruktur>\n"
" <MVAKode>89</MVAKode>\n"
" <MVAKodeTekst>89_9TEST3 ifm. EMEA VAT Reporting</MVAKodeTekst>\n"
" <MVAKodeProsent>30</MVAKodeProsent>\n"
" <MVAKodeFaktorProsent>0.3</MVAKodeFaktorProsent>\n"
" <MVAKodeTypeKode>Inngaaende</MVAKodeTypeKode>\n"
" <ns3:GyldigTidsromStruktur>\n"
" <ns3:GyldigFraDato>1950-01-01</ns3:GyldigFraDato>\n"
" <ns3:GyldigTilDato>2099-12-31</ns3:GyldigTilDato>\n"
" </ns3:GyldigTidsromStruktur>\n"
" </MVAKodeStruktur>\n"
" </MVAKodeListe>\n"
" <ns4:ResultatStatusStruktur>\n"
" <ns4:StatusBeskrivelse>-</ns4:StatusBeskrivelse>\n"
" <ns4:StatusKode>0</ns4:StatusKode>\n"
" <ns4:StatusLogId/>\n"
" </ns4:ResultatStatusStruktur>\n"
" <ns2:KontekstInformasjonStruktur>\n"
" <ns2:ApplikasjonsId>EBS-HentMVAKode</ns2:ApplikasjonsId>\n"
" <ns2:KorrelasjonsId>2</ns2:KorrelasjonsId>\n"
" </ns2:KontekstInformasjonStruktur>\n"
" </HentMVAKodeResponse>\n"
" </soap:Body>\n"
"</soap:Envelope>\n")
matches = re.finditer(regex, test_str)
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