如何在电子邮件中找到国家/地区缩写
How can I find country abbreviations in emails
我有这个正则表达式,可以在电子邮件中找到国家/地区缩写,但它不起作用,因为,
我的表达方式有误,但我认为情况并非如此,因为 regex101 表明它工作得很好,或者
我在 vba 脚本中实施错误。
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:
它总是给我最后的正则表达式结果,我怀疑这是因为它找不到我的 if Reg1.Test(olMail.Body) Then
语句中的错误
您需要在 VBA 代码中使用 m
标志等价物,.Multiline=True
和 g
标志等价物 .Global=True
。 .Execute
的代码匹配得很好,因为您遍历了所有找到的匹配项。
但是,您的正则表达式也可能需要一些增强,我建议使用惰性点模式并在国家/地区模式之前添加单词边界。
您也不需要 .Pattern
定义中的三重引号。
这是一个修复示例:
Countries = "\b(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 = True
.Multiline = True
End With
基于@Wiktor Stribiżew 的解决方案:
Dim Countries As String
Countries = "2_a Von Firma:(?:(?!\b(?: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)).)*\b(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)?$"
With Reg1
.Pattern = Countries
'Formating in email inconsistent
.Global = False
.MultiLine = True
End With
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
将整个 regex 放入 Countries
。
集.Global = False
,.Multiline = True
如果该行不包含国家/地区 M.Submatches(0)
将 return Empty
因此该单元格将不包含任何值。
我有这个正则表达式,可以在电子邮件中找到国家/地区缩写,但它不起作用,因为,
我的表达方式有误,但我认为情况并非如此,因为 regex101 表明它工作得很好,或者
我在 vba 脚本中实施错误。
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:
它总是给我最后的正则表达式结果,我怀疑这是因为它找不到我的 if Reg1.Test(olMail.Body) Then
语句中的错误
您需要在 VBA 代码中使用 m
标志等价物,.Multiline=True
和 g
标志等价物 .Global=True
。 .Execute
的代码匹配得很好,因为您遍历了所有找到的匹配项。
但是,您的正则表达式也可能需要一些增强,我建议使用惰性点模式并在国家/地区模式之前添加单词边界。
您也不需要 .Pattern
定义中的三重引号。
这是一个修复示例:
Countries = "\b(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 = True
.Multiline = True
End With
基于@Wiktor Stribiżew 的解决方案:
Dim Countries As String
Countries = "2_a Von Firma:(?:(?!\b(?: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)).)*\b(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)?$"
With Reg1
.Pattern = Countries
'Formating in email inconsistent
.Global = False
.MultiLine = True
End With
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
将整个 regex 放入 Countries
。
集.Global = False
,.Multiline = True
如果该行不包含国家/地区 M.Submatches(0)
将 return Empty
因此该单元格将不包含任何值。