是否可以在spotfire中从长字符串中提取固定格式的字符串?
我试图从列中提取固定格式的字符串, 此列包含多个固定格式字符串 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年数字) 如果我能做到这一点,我就不必担心本专栏中未来未知的垃圾字符串是否可以在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函数来删除其中的一些,但我不能在将来删除一些不可预知的垃圾字符串 所以我
非常感谢 这可能不是一个铁铸的解决方案,但它适用于示例,如果您愿意使用空间作为分隔符,则不需要神秘的观察:
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”(即空格而不是逗号)。它使用两个反斜杠,三个斜杠出现错误,因此我不同意编辑