Substring截取字符串无法正常使用

BUG反馈 · 2170 次浏览
我是厅长 创建于 2020-06-04 01:40

如题,想通过Substring截取字符串最后出现"\"后面的内容,通过使用增强模式的计算,表达式为:

 $={foldpath}.Substring({foldpath}.LastIndexOf("\\")+1)

其中:{foldpath}=D:\Downloads\Baiduyun\图片

输出:{foldname}

报错为:Unknown identifier '图片' (at index 0).

我是厅长 最后更新于 2020/6/4

CL 2020-06-04 08:51 :

调试运行看看

我是厅长 2020-06-04 08:53 :
085318,925获取资源管理器当前路径
[in]失败后停止True...】[1]
[out]路径=>foldpathD:\Downloads\Baiduyun\图片
085318,939计算
[in]失败后停止True...】[1]
[in]表达式图片...
[in]增强模式True...】[1]
085318,941异常:Unknown identifier '图片' (at index 0).
at DynamicExpresso.Parsing.Parser.ParseIdentifier() 
at DynamicExpresso.Parsing.Parser.ParsePrimaryStart() 
at DynamicExpresso.Parsing.Parser.ParsePrimary() 
at DynamicExpresso.Parsing.Parser.ParseUnary() 
at DynamicExpresso.Parsing.Parser.ParseMultiplicative() 
at DynamicExpresso.Parsing.Parser.ParseAdditive() 
at DynamicExpresso.Parsing.Parser.ParseTypeTesting() 
at DynamicExpresso.Parsing.Parser.ParseComparison() 
at DynamicExpresso.Parsing.Parser.ParseLogicalAnd() 
at DynamicExpresso.Parsing.Parser.ParseLogicalXor() 
at DynamicExpresso.Parsing.Parser.ParseLogicalOr() 
at DynamicExpresso.Parsing.Parser.ParseConditionalAnd() 
at DynamicExpresso.Parsing.Parser.ParseConditionalOr() 
at DynamicExpresso.Parsing.Parser.ParseConditional() 
at DynamicExpresso.Parsing.Parser.ParseAssignment() 
at DynamicExpresso.Parsing.Parser.ParseExpressionSegment(Type returnType) 
at DynamicExpresso.Parsing.Parser.Parse() 
at DynamicExpresso.Interpreter.ParseAsLambda(String expressionText, Type expressionType, Parameter[] parameters) 
at Quicker.Domain.Actions.X.XActionHelper.GetValueFromExpression2(String expression, ActionExecuteContext context) 
at Quicker.Domain.Actions.X.BuildinRunners.Misc.ComputeStep.<>c__DisplayClass37_0.<Execute>b__0() 
at Quicker.Domain.Actions.X.XActionHelper.ExecuteCommonAction(ActionExecuteContext context, ActionStep step, XAction action, Func`1 actionFunc, Action successAction, Action failAction, StepInParamDef stopIfErrorParam, StepOutParamDef isSuccessOutputParam)
085319,027步骤执行失败,原因:Unknown identifier '图片' (at index 0).
085319,032停止动作:Unknown identifier '图片' (at index 0).
085319,032检测到了中止标志(OperationFailed),停止后续步骤执行。
085319,032动作结束
CL 回复 我是厅长 2020-06-04 10:13 :

不要用计算。 计算要再次解析表达式的。 直接在需要的地方用$= {var}.SubString(.... 

我是厅长 回复 CL 2020-06-04 11:25 :

感谢崔大

回复内容
wzq 2020-06-04 11:08
#1
只是想提取最后一个\后的内容,直接正则提取就行了 [^\\]+$
wzq 2020-06-04 11:12
#2

你上面的substring提取也没问题,用赋值就行

wzq 2020-06-04 11:16
#3

用计算也可以做,前面不要加$=或者$$之类的,直接用{}写变量就行

我是厅长 2020-06-04 11:25 :

感谢大佬的详细解答~

回复主贴