获得;空";在Tableau中使用REGEXP\u EXTRACT提取字符串时

获得;空";在Tableau中使用REGEXP\u EXTRACT提取字符串时,regex,tableau-api,Regex,Tableau Api,我一直试图在Tableau中使用REGEXP_EXTRACT函数,但没有成功(见下图)。我有一个字符串列'FOB',我想提取前导的大写字母。有时大写字母后面会有破折号,有时不会,所以我在创建的字段“Advertiser”中使用了以下语法: REGEXP_EXTRACT([FOB],'^[A-Z]*') 但是,这将生成一个充满“null”的列。奇怪的是,即使我将模式从“^[A-Z]*”更改为“SDM”,它仍然是一样的。似乎Tableau没有启用正则表达式 我确实在网上查过我的正则表达式,它起

我一直试图在Tableau中使用REGEXP_EXTRACT函数,但没有成功(见下图)。我有一个字符串列'FOB',我想提取前导的大写字母。有时大写字母后面会有破折号,有时不会,所以我在创建的字段“Advertiser”中使用了以下语法:

REGEXP_EXTRACT([FOB],'^[A-Z]*')  
但是,这将生成一个充满“null”的列。奇怪的是,即使我将模式从“^[A-Z]*”更改为“SDM”,它仍然是一样的。似乎Tableau没有启用正则表达式

我确实在网上查过我的正则表达式,它起作用了。。。如果真的感到困惑,任何帮助都将不胜感激


由于需要提取每个[FOB]列单元格中的第一个字符,因此需要使用
^
锚定和
[a-Z]
字符类,但还需要使用捕获组(即成对括号,
(…)
)包装模式,以告知Tableau需要提取此模式部分:

REGEXP_EXTRACT([FOB],'^([A-Z])')
                       ^     ^
要提取所有(一个或多个)前导大写字母,请添加
+

REGEXP_EXTRACT([FOB],'^([A-Z]+)')
                             ^
见:

整个模式用括号括起来,告诉Tableau返回模式的哪一部分。这是我在创建本文时使用的早期beta版本的更新。这个添加的好处是,Tableau允许您在字符串的较大部分上进行模式匹配,但允许您返回模式的子集


由于需要提取每个[FOB]列单元格中的第一个字符,因此需要使用
^
锚定和
[a-Z]
字符类,但还需要使用捕获组(即成对括号,
(…)
)包装模式,以告知Tableau需要提取此模式部分:

REGEXP_EXTRACT([FOB],'^([A-Z])')
                       ^     ^
要提取所有(一个或多个)前导大写字母,请添加
+

REGEXP_EXTRACT([FOB],'^([A-Z]+)')
                             ^
见:

整个模式用括号括起来,告诉Tableau返回模式的哪一部分。这是我在创建本文时使用的早期beta版本的更新。这个添加的好处是,Tableau允许您在字符串的较大部分上进行模式匹配,但允许您返回模式的子集


这些大写字母总是第一个吗?@WiktorStribiżew yes这些大写字母总是第一个吗?@WiktorStribiżew yes