【问题标题】:Street & Number formatting using RegEx: Switch order of various number formats (e.g 0-9 OR 0-9a-z OR 0-9-0-9a-z) followed by text使用正则表达式的街道和数字格式:切换各种数字格式的顺序(例如 0-9 或 0-9a-z 或 0-9-0-9a-z),然后是文本
【发布时间】:2019-08-24 05:47:49
【问题描述】:

是否有任何 RegEx 向导可以帮助我了解如何涵盖不同的“差异”?

我得到了各种格式的带有数字的街道名称,不幸的是现在都搞砸了,现在看起来像这样

凌乱状态:

  • [0-9] 街道名称(例如:12 Street)
  • [0-9[a-z] 街道名称(例如:12b 街道)
  • [0-9]-[0-9] 街道名称(例如:12-14 Street)
  • [0-9]-[0-9][a-z] 街道名称(例如:12-14b Street)

期望状态:

  • 街道名称 [0-9](例如:街道 12)
  • 街道名称 0-9[a-z](例如:街道 12b)
  • 街道名称 [0-9]-[0-9](例如:街道 12-14)
  • 街道名称 [0-9]-[0-9][a-z](例如:街道 12-14b)

背景: 由于谷歌联系人以某种方式设法通过首先显示门牌号然后显示街道来弄乱我所有的联系人地址,我想在谷歌表中编辑它们。

我很想“炫耀”我到目前为止的表现有多么出色,但事实是:我没有计划如何涵盖所有不同的案例

【问题讨论】:

  • 我不是 Google 表格专家,但请注意 Street 包含大写字母,因此匹配的正则表达式将是 [a-zA-Z]
  • 谢谢,谷歌表格排除了标准正则表达式,遗憾的是:街道也可以以小字母或大字母开头:(
  • 尝试\b(\d+[a-z]?(?:-\d+[a-z]?)?)[ \t]+([a-zA-Z].+) 并在替换中将捕获组切换到$2 $1 请参阅regex101.com/r/Uc12At/1

标签: regex if-statement google-sheets google-sheets-formula array-formulas


【解决方案1】:

对于示例数据中的格式,您可以使用:

\b(\d+[a-z]?(?:-\d+[a-z]?)?)[ \t]+([a-zA-Z].+)

说明

  • \b字边界,防止数字成为较大字的一部分
  • ( 第一组
    • \d+[a-z]? 匹配 1+ 个数字和可选的 a-z
    • (?:-\d+[a-z]?)? 可选匹配连字符,1+ 位可选 a-z
  • )关闭群
  • [ \t]+ 匹配 1+ 个空格或制表符
  • ( 第 2 组
    • [a-zA-Z].+ 匹配小写或大写 a-z 后跟任意字符 1 次以上
  • )关闭群

Regex demo

例如

= REGEXREPLACE(A1:A, "\b(\d+[a-z]?(?:-\d+[a-z]?)?)[ \t]+([a-zA-Z].+)", "$2 $1")

【讨论】:

    【解决方案2】:

    所以这是一种解决方案,依赖于“数字”中没有空格。

    = REGEXREPLACE(C6, ".+ ", "") & " " & REGEXEXTRACT(C6, ".+ ")
    

    解释:

    = REGEXREPLACE(C6, ".+ ", " ")
    

    只是删除实际的数字部分(用空字符串替换它)。我们只剩下街道名称,所以我们添加了一个空格。

    后半部分,也就是同一个正则表达式:

    REGEXEXTRACT(C6, ".+ ")
    

    再次找到号码并将其粘贴到末尾。

    【讨论】:

      【解决方案3】:
      =ARRAYFORMULA(IF(REGEXMATCH(A1:A, "^\d"), 
       REGEXEXTRACT(A1:A, " (.*)")&" "&REGEXREPLACE(A1:A, "\s(.+)", ), A1:A))
      

      【讨论】:

        猜你喜欢
        • 2021-09-06
        • 1970-01-01
        • 2011-09-17
        • 2015-11-22
        • 2012-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多