REGEX获取字符串中的所有数字,即使其他字符在
问题描述:
之间
我有一个Google Spreadsheet填充了来自房地产网站的信息。
电话号码出现在单个单元中,如*Cell #* (602) 695-2036
或*Cell #* 602-575-1008
。我有一个REGEXEXTRACT()
功能使用\d-\d-\d
其中数字格式化工作,但我需要的东西适用于所有单元格数字字符串,无论格式或字符之间。所以我想(602) 695-2036
返回6026952036
和602-575-1008
返回6025751008
。REGEX获取字符串中的所有数字,即使其他字符在
Spreadsheet。数字在第5行,一个在第6行。
答
尝试更换所有非数字与没有。像
=regexreplace(A1, "\D+",)
应该工作。你也可以通过一个数组遍历regexreplace ..
=arrayformula(if(len(A1:A), regexreplace(A1:A, "\D+",),))
更改范围以适应并查看它是否有效?
答
您可以将所有数字与正则表达式\d
匹配。然后只需将您的匹配列表附加在一起。
下面是这种在JavaScript的例子:
// INIT
var text = '(602) 695-2036';
var result = '';
// PRINT START
console.log("START: "+text);
// GET MATCHES
var matches = text.match(/\d/g);
// LOOP MATCHES
for(var index = 0; index < matches.length; index++){
\t
\t // APPEND TO RESULT
\t result += matches[index];
}
// PRINT RESULT
console.log("RESULT: "+result);
+0
对于我可以通过正则表达式结果循环的东西来说,这看起来不错,但我不知道在Google表格中使用= REGEXEXTRACT()来执行此操作的方式。我需要在单个单元中完成此操作,而不是使用JavaScript函数。 –
答
尝试这在样品片A5:
=REGEXreplace(A5,"\D+", "")
这两个工作,虽然第一个更好地满足需求。谢谢! –