Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Regex 正则表达式(第一场比赛之后的所有规则(没有第一场比赛))_Regex_Snowflake Cloud Data Platform - Fatal编程技术网

Regex 正则表达式(第一场比赛之后的所有规则(没有第一场比赛))

Regex 正则表达式(第一场比赛之后的所有规则(没有第一场比赛)),regex,snowflake-cloud-data-platform,Regex,Snowflake Cloud Data Platform,我正在努力使用简单的正则表达式。基本上,我想要第一场比赛后的一切,而不是第一场比赛 我当前的表达式是这样的:\ ux* 当我输入时:AAA_BBB_CCC 输出为:_BBB_CCC 我的理想输出是:BBB_CCC 我正在使用一个带有内置正则表达式函数的雪花数据库 很遗憾,我无法使用捕获组: \_(?<data>.*) 返回包含BBB_CCC的捕获组数据 例如: 使用捕获组: \_(?<data>.*) 返回包含BBB_CCC的捕获组数据 例如: 您可以使用正则表达式来

我正在努力使用简单的正则表达式。基本上,我想要第一场比赛后的一切,而不是第一场比赛

我当前的表达式是这样的:\ ux*

当我输入时:AAA_BBB_CCC

输出为:_BBB_CCC

我的理想输出是:BBB_CCC

我正在使用一个带有内置正则表达式函数的雪花数据库

很遗憾,我无法使用捕获组:

\_(?<data>.*)
返回包含BBB_CCC的捕获组数据

例如: 使用捕获组:

\_(?<data>.*)
返回包含BBB_CCC的捕获组数据

例如:

您可以使用正则表达式来实现这一点,例如JavaScript就可以完成这项工作

"AAA_BBB_CCC".replace(/[^_]+./, '')
使用REGEXP\u替换为雪花

regexp_replace('AAA_BBB_CCC','^[^_]+_','')
但您也可以找到u的第一个索引并使用substring,这在所有语言中都可用

let text = "AAA_BBB_CCC"
let index = text.indexOf('_')
if(index !== -1 && index < text.length) {
    let result = text.substring(index+1)
}

您可以使用正则表达式来实现这一点,例如JavaScript将完成这项工作

"AAA_BBB_CCC".replace(/[^_]+./, '')
使用REGEXP\u替换为雪花

regexp_replace('AAA_BBB_CCC','^[^_]+_','')
但您也可以找到u的第一个索引并使用substring,这在所有语言中都可用

let text = "AAA_BBB_CCC"
let index = text.indexOf('_')
if(index !== -1 && index < text.length) {
    let result = text.substring(index+1)
}

在Snowflake SQL中,您可以使用,它的语法是


REGEXP_SUBSTR,[,[,[,[,在雪花SQL中,您可以使用,其语法是


REGEXP_SUBSTR,[,[,[,[,[,要使其实际工作,您需要使用:

SELECT REGEXP_SUBSTR('AAA_BBB_CCC', '_(.*)', 1, 1, 'e', 1);
其中:

REGEXP_SUBSTR('AAA_BBB_CCC', '_(.*)', 1, 1, 'E', 1)
BBB_CCC

您需要传递e的parameter子句,因为它是提取子匹配项。因此Wiktor的答案是95%正确。

要使其实际工作,您需要使用:

SELECT REGEXP_SUBSTR('AAA_BBB_CCC', '_(.*)', 1, 1, 'e', 1);
其中:

REGEXP_SUBSTR('AAA_BBB_CCC', '_(.*)', 1, 1, 'E', 1)
BBB_CCC

您需要传递e的参数子句,因为它是提取子匹配项。因此Wiktor的答案是95%正确的。

您只需要获取组1值。什么是编程语言?我使用雪花SQL。您只需要获取组1值。什么是编程语言?我使用雪花SQL。您不应该逃避,它不是一个特殊字符。而且,如果。*不适用于OP,为什么你认为命名组会?你不应该逃避。*,它不是一个特殊字符。另外,如果。*不适用于OP,为什么你认为命名组会?非常感谢!我需要做一些正则表达式课程,但现在,它解决了我的问题。再次感谢你。当我运行你的SQL时我得到的结果为空。您需要使用regex_参数或“e”来获得匹配的子字符串。@SimeonPrilgrim谢谢,我在答案中添加了这一点。非常感谢!我需要做一些regex课程,但现在,它解决了我的问题。再次感谢您。当我运行SQL时,我得到的结果为空。您需要使用regex_参数或“e”来解决问题获取匹配的子字符串。@SimeonPrilgrim谢谢,我在答案中添加了该位。我是我的雪花实例,您的替换结果为空字符串,我必须使用regexp\u replace'AAA\u BBB\u CCC','^[^\uu]+_“,以获得所需的结果。我没有Snowflake来测试它,并且忘记了开始锚定标记^。它已修复。Thanx!我是我的Snowflake实例,您的替换结果为空字符串,我必须使用regexp_replace'AAA_BBB_CCC',”^[^]+_,以获得所需的结果。我没有雪花来测试它,并且忘记了开始锚标记^。它已修复。Thanx!