I have this regex which should find a country abbreviation in an email but it doesn't work because,
I either have the wrong expression, which I don't think is the case since regex101 shows it working just fine, or
I implemented it wrong in my vba script.
Dim Countries As String
Countries = "(Nordic|F|USA|Norway|SK|Singapur|RU|China|Pakistan|Korea|Indien|India|Italien|UK|France|Deutschland|D|CZ|BLR|Schweden|Sweden|I|Tver|Minsk|HU|Russland|Frankreich|" & _
"AFG|ALA|ALB|DZA|ASM|AND|AGO|AIA|ATA|ATG|ARG|ARM|ABW|AUS|AUT|AZE|BHS|BHR|BGD|BRB|BLR|BEL|BLZ|BEN|BMU|BTN|BOL|BES|BIH|BWA|BVT|BRA|IOT|BRN|BGR|BFA|BDI|CPV|KHM|CMR|CAN|CPV|CYM|CAF|TCD|CHL|CHN|TWN|CXR|CCK|COL|COM|COD|COG|COK|CRI|CIV|HRV|CUB|CUW|CYP|CZE|KOR|COG|DNK|DJI|DMA|DOM|ECU|EGY|SLV|GNQ|ERI|EST|SWZ|ETH|FLK|FRO|FJI|FIN|FRA|GUF|PYF|ATF|GAB|GMB|GEO|DEU|GHA|GIB|GBR|GRC|GRL|GRD|GLP|GUM|GTM|GGY|GIN|GNB|GUY|HTI|HMD|VAT|HND|HKG|HUN|ISL|IND|IDN|IRN|IRQ|IRL|IMN|ISR|ITA|JAM|SJM|JPN|JEY|JOR|KAZ|KEN|KIR|PRK|KOR|KWT|KGZ|LAO|LVA|LBN|LSO|LBR|LBY|LIE|LTU|LUX|MAC|MKD|MDG|MWI|MYS|MDV|MLI|MLT|MHL|MTQ|MRT|MUS|MYT|MEX|FSM|MDA|MCO|MNG|MNE|MSR|MAR|MOZ|MMR|NAM|NRU|NPL|NLD|NCL|NZL|NIC|NER|NGA|NIU|NFK|MNP|NOR|OMN|PAK|PLW|PSE|PAN|PNG|PRY|PRC|PER|PHL|PCN|POL|PRT|PRI|QAT|TWN|KOR|COG|REU|ROU|RUS|RWA|ESH|BLM|SHN|KNA|LCA|MAF|SPM|VCT|WSM|SMR|STP|SAU|SEN|SRB|SYC|SLE|SGP|" & _
"SXM|SVK|SVN|SLB|SOM|ZAF|SGS|KOR|SSD|ESP|LKA|SDN|SUR|SJM|SWE|CHE|SYR|TWN|TJK|TZA|THA|TLS|TGO|TKL|TON|TTO|TUN|TUR|TKM|TCA|TUV|UGA|UKR|ARE|GBR|UMI|USA|VIR|URY|UZB|VUT|VEN|VNM|VGB|VIR|WLF|ESH|YEM|ZMB|ZWE\S)"
With Reg1
.Pattern = "2_a Von Firma[:].*" & """ & Countries & """ & "$"
'Formating in email inconsistent
.Global = False
End With
On Error GoTo CaseThree
If Reg1.Test(olMail.Body) Then
Set M1 = Reg1.Execute(olMail.Body)
End If
For Each M In M1
Debug.Print M.SubMatches(0)
With xExcelApp
Range("B6").Value = M.SubMatches(0)
End With
Next M
CaseThree:
It always gives me the last regex result, which I suspect is because it can't find the error in my if Reg1.Test(olMail.Body) Then
statement