Tableau正则表达式Regexp_Extract()导致问题

时间:2017-02-16 18:35:38

标签: regex tableau

我正在尝试使用Tableau 10.0中的REGEXP_EXTRACT(字符串,模式)函数。我之前在C,R和python中使用过regex。即使是最简单的正则表达式,Tableau似乎也没有合作,我所能得到的只是" Null"。我的数据源是Excel电子表格(.xlsx)。我也尝试使用具有相同数据的CSV文件无济于事。

实施例: 玩家[1] =" Ezekiel Elliott,RB" (例如,玩家维度包含格式[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的参考资料进行了咨询,但没有运气。

1 个答案:

答案 0 :(得分:1)

您需要捕获您需要提取的内容:

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] matches more than just letters