Excel的正则表达式删除特定符号后的所有但特定符号?

时间:2017-09-19 10:16:58

标签: excel macos

我有这样的咒语是地址,例如:

P.O. Box 422, E-commerce park<br>Vredenberg<br><br><br>Curaçao
Adelgatan 21<br>Malmö<br><br>211 22<br>Sweden
Läntinen Pitkäkatu 35 A 15<br>Turku<br><br>20100<br>Finland

我对国家感兴趣。国家/地区始终位于<br>标记之后。

注意,在最后一个值之前可以有几个这样的标记(例如第一个示例字符串)。

是否有一个很好的方法可以按照这些方式制定公式:

  1. 识别字符串结尾
  2. 将一个角色循环回来,直到一个角色到达&#34;&gt;&#34;字符
  3. 切断其他所有内容(包括&#34;&gt;&#34;遇到)

2 个答案:

答案 0 :(得分:0)

如果它始终是字符串的最后一部分,则不需要RegEx来执行此操作。

您可以使用字符串修饰符

来获取它
Sub Test()
    Dim str As String, str1 As String, str2 As String
    Dim Countries As String

    str = "P.O. Box 422, E-commerce park<br>Vredenberg<br><br><br>Curaçao"
    str1 = "Adelgatan 21<br>Malmö<br><br>211 22<br>Sweden"
    str2 = "La¨ntinen Pitka¨katu 35 A 15<br>Turku<br><br>20100<br>Finland"

    Countries = Right(str, Len(str) - InStrRev(str, "<br>") - 3)
    Countries = Countries + vbNewLine + Right(str1, Len(str1) - InStrRev(str1, "<br>") - 3)
    Countries = Countries + vbNewLine + Right(str2, Len(str2) - InStrRev(str2, "<br>") - 3)

    MsgBox Countries
End Sub

显然,需要更新数据集的存储方式。您可以遍历数据集并在每行使用字符串修饰符

答案 1 :(得分:0)

公式也有效。如果是A1中的字符串,则写入B1:
=TRIM(RIGHT(SUBSTITUTE(A1,"<br>",REPT(" ",100)),100))

使用从这里采取的方法修改: https://exceljet.net/formula/get-last-word