Informatica中如何从指定字符串提取最大数值?
提取字符串中的最大数值解决方案
针对字符串 "rad of experience (kms) : 0-50",要提取最大数值50,你可以尝试以下两种可靠方法:
方法一:精准匹配连字符后的目标数值
直接用正则匹配连字符-之后的末尾数字,用reg_extract的正确写法如下:
reg_extract("rad of experience (kms) : 0-50", "-(\d+)$", 1)
- 正则
-(\d+)$的含义:-:匹配连字符本身(\d+):捕获1个及以上的数字(这就是我们要的50)$:匹配字符串末尾,确保取的是最后一段数字
方法二:提取所有数字后取最大值(通用场景)
如果后续可能遇到类似"rad of experience (kms) : 10-30-50"这种多段数字的情况,可以先提取所有数字,再取最大值:
- 先提取所有数字:
reg_extract_all("rad of experience (kms) : 0-50", "\d+")
这会返回一个数字列表[0, 50]
2. 对列表取最大值:
array_max(reg_extract_all("rad of experience (kms) : 0-50", "\d+"))
这样无论数字段有多少,都能直接拿到最大的那个值。
内容的提问来源于stack exchange,提问作者Intiyaz
相关产品推荐
相关产品推荐

