Tableau正则表达式REGEXP_EXTRACT()麻烦



我正在尝试在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]不仅匹配字母。

最新更新