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

是否可以在spotfire中从长字符串中提取固定格式的字符串?,spotfire,Spotfire,我试图从列中提取固定格式的字符串, 此列包含多个固定格式字符串 e、 g 2018-123456712018-01234562018-2345678 但是它总是包含许多类型的垃圾字符串(因为该列是手动输入的) e、 g 序列号:2018-1234567和2018-0123456以及2018-2345678 或 跟踪ID:2018-1234567;2018-0123456;2018-2345678 我可以使用RXREPLACE函数来删除其中的一些,但我不能在将来删除一些不可预知的垃圾字符串 所以我

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

e、 g

2018-123456712018-01234562018-2345678

但是它总是包含许多类型的垃圾字符串(因为该列是手动输入的)

e、 g

序列号:2018-1234567和2018-0123456以及2018-2345678

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

我可以使用RXREPLACE函数来删除其中的一些,但我不能在将来删除一些不可预知的垃圾字符串

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

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


非常感谢

这可能不是一个铁铸的解决方案,但它适用于示例,如果您愿意使用空间作为分隔符,则不需要神秘的观察:

Trim(RXReplace([mystring],"\\\D*\\\d*\\\D*(\\\d{4}-\\\d{7})","$1,","g"))
它捕获您喜欢的字符串(\\d{4}-\\d{7}),并将其本身替换为$1,后跟一个空格。没有被()包围的一切都被抛在了后面。它假定在每个字符串之前/之间出现的任何“垃圾”都是由数字(\\d)和非数字(\\d)组成的

事实上,简单地\\D*就可以工作,但它不会删除像跟踪123ID:

Trim()
用于删除最后一个空格


Gaia

抱歉的打字错误:“$1”应该是“$1”(即空格而不是逗号)。它使用两个反斜杠,三个斜杠出现错误,因此我不同意编辑