是否可以在Spotfire中从长字符串中提取固定格式的字符串?

时间:2019-02-14 03:18:48

标签: spotfire

我正在尝试从列中提取固定格式的字符串, 此列包含多个固定格式的字符串。

例如

2018-1234567,2018-0123456,2018-2345678

但是它总是包含许多类型的垃圾字符串(由于手动输入此列)

例如

SN:2018-1234567和2018-0123456和2018-2345678

跟踪ID:2018-1234567; 2018-0123456; 2018-2345678

我可以使用RXREPLACE函数消除其中的一些,但将来无法删除一些无法预测的垃圾字符串。

所以我想知道,是否有一个函数可以从此列中提取固定格式的字符串?固定格式的字符串为YYYY-NNNNNNN(7位数字)

如果我能做到这一点,则不必担心本专栏中将来的未知垃圾字符串。

非常感谢!

1 个答案:

答案 0 :(得分:1)

这可能不是铸铁解决方案,但是如果您希望有一个空格作为分隔符,那么它可以用于示例,而无需进行神秘的环顾:

Trim(RXReplace([mystring],"\\\D*\\\d*\\\D*(\\\d{4}-\\\d{7})","$1,","g"))

它将捕获您喜欢的字符串(\\ d {4}-\\ d {7}),并将其替换为$ 1并后跟一个空格。没有被()包围的所有内容都将被留下。假定在每个字符串之前/之间出现的“垃圾”都是由数字(\\ d)和非数字(\\ D)组成的。

实际上\\ D *可以工作,但不能删除跟踪 123 ID:

Trim()将删除最后一个空格。

Gaia