我试图用带有动态变量的正则表达式在BigQuety和JS-UDF中使用,但转义有一些问题,我不知道如何解决.
CREATE TEMP FUNCTION `replaceRegex`(org STRING, to_replace STRING, replace_to STRING)
RETURNS STRING LANGUAGE js AS
"""
re_string = `\\b${to_replace}\\b`
let re = new RegExp(re_string, 'gi');
return org.replace(re, replace_to);
""";
SELECT replaceRegex('The quick brown fox jumps over the lazy dog', 'fox', 'bear')
此版本无效.
但我改变了:
re_string = /\\bfox\\b/
然后它确实起作用了.
但是我不能硬编码我的正则表达式,它必须是动态值传递的.