我正在尝试使用regex_replace命令提取子字符串。我想提取“;SWIFTInward”;在这里

我正在尝试使用regex_replace命令提取子字符串。我想提取“;SWIFTInward”;在这里,regex,powershell,ansible,trim,regexp-replace,Regex,Powershell,Ansible,Trim,Regexp Replace,我在Ansible中尝试了以下代码 --- -主机:windows 策略:线性 变量: war\u文件\u路径:F:\\Install\\IIBProjects\\DE\\war\\DE\u SWIFTInward-202010.0.0.war 任务: -名称:获取windows的属性文件夹路径 设定事实: endpointDetails:“{item | win|u basename | regex|u replace('\\\\(?:(?!\\\\))*$,''}” 有以下项目: -“{{w

我在Ansible中尝试了以下代码

---
-主机:windows
策略:线性
变量:
war\u文件\u路径:F:\\Install\\IIBProjects\\DE\\war\\DE\u SWIFTInward-202010.0.0.war
任务:
-名称:获取windows的属性文件夹路径
设定事实:
endpointDetails:“{item | win|u basename | regex|u replace('\\\\(?:(?!\\\\))*$,''}”
有以下项目:
-“{{war\u file\u path}”
注册:war\u文件\u名称
时间:ansible_os_family==“Windows”
预期输出
SWIFTInward

我得到的错误输出
DE_SWIFTInward-202010.0.0.war

返回的文件名没有目录详细信息。因此,您的正则表达式与它不匹配,因为它在开始时需要一个
\

你需要

endpointDetails:“{{item | win|u basename | regex|u replace('^[^.]*.[^.-]+).'\\1')}”

或者,使用
regex\u search
和一个简单的
([^\u-]+)-


endpointDetails:“{{item | win|u basename | regex|u search”(?请在字符串末尾提供需要排除的内容的详细信息:
-202010.0.0.war
的预期模式是什么?