0

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

例如,A;乙; C; D

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

需要对超过 200 万行执行此操作。请帮忙!

4

2 回答 2

4

;基本思想是从原始长度中减去不带字符的字符串长度:

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

于 2016-02-05T09:04:02.007 回答
1

这是一个正则表达式:

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

RXReplace作为参数:

  1. 您要处理的字符串(在本例中位于第 1 列)
  2. 您要使用的正则表达式(这里是 (?!;)。)
  3. 您要替换匹配的内容(在这种情况下为空白,以便删除与正则表达式匹配的所有内容)
  4. 最后一个参数说明你希望它如何工作(我们传入 gis 这意味着替换所有匹配项,而不仅仅是第一个,忽略大小写,替换换行符)

我们将其包装在 aLen中,这给了我们分号的数量,因为这是剩下的所有内容,最后我们将其加 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

于 2016-02-05T22:54:03.977 回答