Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 在Google工作表中使用REGEXEXTRACT提取字符串中的所有匹配项_Google Sheets_Google Sheets Formula - Fatal编程技术网

Google sheets 在Google工作表中使用REGEXEXTRACT提取字符串中的所有匹配项

Google sheets 在Google工作表中使用REGEXEXTRACT提取字符串中的所有匹配项,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,我有一个单元格,其值如下:aasdf123asdf34asdf3 我想提取所有连续数字组:123、34和3 我想这就是我需要的正则表达式:(\d+) 但它只是提取第一个匹配项 这在谷歌表单之外是有效的。不知道为什么我不能让它在谷歌工作表上工作 您可以尝试直接使用以下命令实际生成所需的CSV字符串: 对REGEXREPLACE的内部调用将所有非数字字符簇替换为逗号。然后,外部调用删除了第一次替换可能留下的任何前导/尾随逗号 此外,您还可以使用将值分隔到每个单独的单元格中: =TRANSPOSE

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

我想提取所有连续数字组:
123
34
3

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

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

这在谷歌表单之外是有效的。不知道为什么我不能让它在谷歌工作表上工作


您可以尝试直接使用以下命令实际生成所需的CSV字符串:

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


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

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


在这里,函数只是垂直堆叠匹配项,而不是水平堆叠,因为
SPLIT
会将它们作为默认值进行放置。

您尝试过提供的解决方案吗?对你有用吗?如果不是,我们应该试着找出原因。如果是的话,请记住,当一个答案回答了你的问题时,它甚至是它,这样其他人也能从中受益。
=TRANSPOSE( SPLIT(REGEXREPLACE(REGEXREPLACE("aasdf123asdf34asdf3", "\D+", ","), "^,|,$", ""), ","))