Spotfire:计算字符串中某个字符的数量

时间:2016-02-05 06:33:11

标签: regex string spotfire charactercount

我正在尝试添加一个新的计算列,该列计算字符串中的半冒号数并向其中添加一个。所以我的列包含一堆别名,我需要知道每行有多少。

例如, 一个; B; C; D

所以基本上这意味着有4个别名(3个半冒号+ 1个)

需要为超过200万行执行此操作。求救!

2 个答案:

答案 0 :(得分:3)

基本思路是从字母的长度中减去;个字符的长度:

len([columnName])-len(Substitute([columnName],";",""))+1

答案 1 :(得分:1)

这是一个正则表达式:

Len(RXReplace([Column 1], "(?!;).", "", "gis"))+1

RXReplace作为参数:

  1. 您想要处理的字符串(在本例中,它位于第1列)
  2. 您要使用的正则表达式(此处为(?!;)。)
  3. 您要替换的内容与(在这种情况下为空白)匹配 所有匹配正则表达式的东西都被删除了)
  4. 最后一个参数说明你希望它如何工作(我们正在通过 在gis中,这意味着替换所有匹配而不仅仅是第一个,忽略大小写,替换换行符)
  5. 我们将它包装在一个Len中,它给出了分号的数量,因为剩下的就是剩下的所有分号,最后我们将它加1来得到最终的结果。

    您可以在此处阅读有关正则表达式的更多信息:https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx但简而言之,它表示匹配不是半冒号的所有内容。

    您可以在此处阅读有关RXReplace和Len的更多信息:https://docs.tibco.com/pub/spotfire/6.0.0-november-2013/userguide-webhelp/ncfe/ncfe_text_functions.htm

相关问题