gpt4 book ai didi

regex - 操作字符串以提取地址

转载 作者:行者123 更新时间:2023-12-03 03:39:49 27 4
gpt4 key购买 nike

我目前正在使用一个非常大的城市地址数据源进行一些工作,其中的数据如下所示。

137 是正确的地址,但它属于街道上 135-138A 的一栋建筑物。

来源:

137 9/F 135-138A KING STREET 135-138A KING STREET TOR

我用过 function这会删除在extendoffice上显示的重复项。

第二列变成了这样:

137 9/F 135-138A KING STREET TOR

我现在想做的是

  • 查找地址号码并将其添加到街道名称前面
  • 删除连接到破折号的数字 - ):

9/F 137 KING STREET TOR

这是实现这一目标的最佳方法吗?

我遇到的主要问题是地址名称中有许多不一致的空格。 “范戴克路”。

无论如何,我可以在数组中找到“-”,并为破折号两侧的 2 个数字设置变量,并将其替换为位于前面的正确地址数字

Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
Dim x

With CreateObject("Scripting.Dictionary")
.CompareMode = vbTextCompare
For Each x In Split(txt, delim)
If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
Next
If .Count > 0 Then RemoveDupes2 = Join(.keys, delim)
End With
End Function

谢谢

最佳答案

正则表达式是一种(除其他外)搜索字符串中的特征的方法。

看起来您正在寻找的功能是:数字:可能有一些空格:破折号:可能有一些空格:数字

在正则表达式中,这将表示为:([0-9]*)[ ]*-[ ]*([0-9]*)这意味着:找到一组连续的数字,后跟零个或多个空格,然后是破折号,然后是零个或多个空格,然后是更多数字。

括号表示将返回的元素。因此,您可以将变量分配给第一个数字或第二个数字。

如果地址中的其他地方可能出现破折号,您可能需要对此进行调整。

有关实际实现的更多信息,请访问:How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops

关于regex - 操作字符串以提取地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42127009/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com