2017-04-10 25 views
0

在talend Open Studio中,如果我有一个指向目录的上下文变量C:/MyData如何从目录字符串中减去它,例如: C:/MyData/Folder/Sub/让我结束了/Folder/Sub/额外的处理如何在Talend中从字符串中减去或删除上下文变量的内容

我试图存放在变量PathC:/MyData/Folder/Sub/和上下文在TMAP字符串中使用Var.Path.replace(Var.ContextAsString, ""),但没有在所有

影响输出是否有使用Talend tMap处理表示目录路径的字符串的更好方法?

回答

1

无需声明tMap变量。 假设包含完整路径的字段是“row1.fullpath”,而上下文变量被称为root(包含“D:/ MyData”)。 在TMAP的右半部分,只写:

row1.fullpath.replace(context.root, "")
+0

我试过前面,但不拥有的数据,以便需要他们宣告为变量字段,但你的确让我重新测试值,发现我从C:\ MyData \ Folder \ Sub目录路径中搜索C:/ MyData,所以它永远不会匹配(斜线不同),但是我能够更改上下文目录值而不影响作业的运行,所以Var.Path.replace工作 – mobcdi

1

您可以参考下面的示例并将其移植到tMap表达式。

String s1 = "C:/MyData"; 
String s2 = "C:/MyData/Folder/Sub/"; 
String s3 = (s2.indexOf(s1) >= 0) ? s2.substring(s2.indexOf(s1) + s1.length()): s2; 
System.out.println(s3); 
相关问题