【问题标题】:Extract all matches in a string using REGEXEXTRACT in Google Sheets在 Google 表格中使用 REGEXEXTRACT 提取字符串中的所有匹配项
【发布时间】:2020-06-22 18:29:55
【问题描述】:

我有一个单元格,其值如下:aasdf123asdf34asdf3

我想提取所有连续数字组:123343

我认为这是我需要的正则表达式:(\d+)

但它只提取第一个匹配项。

这适用于 Google 表格之外。不知道为什么我不能让它在 Google 表格中工作。

https://regexr.com/572et

【问题讨论】:

  • 您尝试过提供的解决方案吗?它对你有用吗?如果不是,我们应该尝试找出原因。如果是,请记住,根据site guidelines,当答案解决您的问题时,accept 它甚至是upvote 它,这样其他人也可以从中受益。

标签: google-sheets google-sheets-formula


【解决方案1】:

您可以尝试使用REGEXREPLACE 直接生成所需的 CSV 字符串:

=REGEXREPLACE(REGEXREPLACE("aasdf123asdf34asdf3", "\D+", ","), "^,|,$", "")

REGEXREPLACE 的内部调用将所有非数字字符簇替换为逗号。然后,外部调用删除了第一个替换可能留下的任何前导/尾随逗号。


此外,您可以使用SPLIT 将值分隔到每个单独的单元格中:

=TRANSPOSE( SPLIT(REGEXREPLACE(REGEXREPLACE("aasdf123asdf34asdf3", "\D+", ","), "^,|,$", ""), ","))

这里TRANSPOSE 函数只是垂直堆叠匹配而不是水平堆叠,因为SPLIT 会默认放置它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-28
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    相关资源
    最近更新 更多