我正在尝试在tableau 10.0中使用regexp_extract(字符串,模式)函数。我曾在C,R和Python之前与Regex合作。Tableau似乎甚至都没有为最简单的正则表达式合作,我所能获得的只是"无效"。我的数据源是Excel电子表格(.xlsx)。我还尝试使用具有相同数据的CSV文件。
示例:玩家[1] =" Ezekiel Elliott,rb"(R.E播放器维度包含格式的值[A-Z] {1,40}, s [A-Z] {2})。我试图捕获最后两个字母,其中包含播放器的足球位置(RB,QB等)。所有以下只是返回null:
REGEXP_EXTRACT([Players], '(?<=,s)[A-Z]{2}')
REGEXP_EXTRACT([Players], '(?<=,s)[A-Z]{2}')
REGEXP_EXTRACT[[Players], "[e,E]")
REGEXP_EXTRACT("Ezekiel Elliott, RB", "[e,E]")
最后两个特别令人不安,因为我什至无法匹配字母。
任何解决方案,关于我做错了什么的解释,甚至指向闪亮方向的箭头都将不胜感激。我已经咨询了有关ICU正则表达式的参考,http://userguide.icu-project.org/strings/regexp,但没有运气。
您需要捕获您需要提取的内容:
REGEXP_EXTRACT[[Players], "([A-Z]{2})$")
([A-Z]{2})$
将匹配以下:
-
([A-Z]{2})
-匹配并捕获到第1组(您最终将获得的内容)正是两个ASCII大写字母 -
$
-断言字符串位置的结尾。
如果您说条目可以与^[A-Za-z]{1,40},s([A-Z]{2})$
匹配,则也可以使用此模式(在此处,^
匹配字符串的开始,[A-Za-z]{1,40}
将匹配1至40个ASCII字母,,
将匹配逗号,其余的模式与上面相同)。请注意,[A-z]
不仅匹配字母。