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

is it possibile extract a fixed format string form a long string in 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 位数字)

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

非常感谢!

这可能不是一个铁定的解决方案,但它适用于示例,没有神秘的环顾四周,如果你很高兴有一个 space 作为分隔符:

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

它捕获您喜欢的字符串 (\\d{4}-\\d{7}) 并将其替换为自身 $1 后跟 space。没有被 () 包围的所有内容都被留下。它假定无论 'garbage' 出现 before/between,每个字符串都是由数字 (\\d) 和非数字 (\\D) 混合而成。

事实上,简单的\\D*就可以了,但它不会删除像tracking123 ID:

这样的东西

Trim()就是去掉最后一个space。

盖亚