繁体   English   中英

是否可以从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

或者

追踪编号:2018-1234567; 2018-0123456;2018-2345678

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

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

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

多谢!

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

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

它捕获您喜欢的字符串 (\\\\d{4}-\\\\d{7}) 并将其替换为 $1 后跟一个空格。 没有被 () 包围的所有东西都被抛在后面。 它假设在每个字符串之前/之间出现的任何“垃圾”都是由数字 (\\\\d) 和非数字 (\\\\D) 混合而成的。

事实上,简单的 \\\\D* 会起作用,但它不会删除诸如跟踪123 ID 之类的东西:

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

盖亚

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM