在参数传递期间使用 RegEx 删除可能的文件扩展名?

Removing possible file extension using RegEx during Argument passing?

提问人:Johan Dahlgren 提问时间:8/30/2023 最后编辑:Wiktor StribiżewJohan Dahlgren 更新时间:8/30/2023 访问量:35

问:

我最近开始了实习,在那里我开始编写 UiPath 代码,这对我来说是全新的。 我想知道(我希望我能正确地表达)是否有办法使用正则表达式删除文件名(如果有的话)的扩展名,同时将参数传递给它的函数。

例如。 我想将我的文件“exampleFile.exe”打印为“exampleFile”,而不实际更改变量本身。

我无法弄清楚如何合并正则表达式,我目前必须删除字符串中最后一个“.”之后的所有内容。这是我的表达方式:/\.[^.]*$/

我还将附加我正在使用的实际代码的屏幕截图。

这段代码目前创建一个名为“(当前文件名).xml_metadata.xml”的文件,我当然只想在最后.xml

destinationFolderPath + "\" + CurrentFile.Name + "_metadata.xml"

我的工作区,这是写入文件名部分,这里是 insterestesting。它在侧面的编辑器中打开。

希望任何善良的灵魂都能帮助一个苦苦挣扎的少年!

试图删除字符串的结尾,它只是给我一个错误。

正则表达式 字符串 串联 参数 - 传递 UIPath

评论

1赞 Wiktor Stribiżew 8/30/2023
不应该是吗?Regex.Replace(CurrentFile.Name, @"\.[^.]*$", "", RegexOptions.RightToLeft)
0赞 Johan Dahlgren 8/30/2023
@WiktorStribiżew 是的,这是我想要的完美解决方案!非常感谢。

答:

0赞 Wiktor Stribiżew 8/30/2023 #1

您可以替换为CurrentFile.Name

Regex.Replace(CurrentFile.Name, @"\.[^.]*$", "", RegexOptions.RightToLeft)

请注意,不应在 .NET 模式中使用正则表达式分隔符

该选项允许从字符串末尾进行有效的模式搜索。RegexOptions.RightToLeft