Powershell - 查找未定义的字符系列

标签 powershell

我试图找到一系列未定义的字符,并通过 powershell 将它们替换为定义的字符集。特别麻烦的脚本行涉及更改 Android 项目的 xml list :

(get-content "AndroidManifest.xml") | 
   foreach { $_ -replace "@drawable/*_icon", "@drawable/$icon_icon"} | 
   set-content "AndroidManifest.xml"

这一行的想法是,它检索内容,搜索并替换图标字符串(用 $icon 表示的图标名称替换现有的图标名称),然后将其传递回文件中。

不幸的是,当执行时,这似乎并没有真正完成它的工作,并且字符串只是没有改变。现有字符串是可变的,因此不能输入任何值(因此使用通配符)。

有人可以建议解决这个问题吗?

最佳答案

我认为您使用的正则表达式不太正确。 * 修饰符匹配零个或多个前一个字符,因此 /*_icon 匹配零个或多个正斜杠,后跟 _icon

其次,在替换字符串中,您匹配的内容将替换为 $icon_icon 变量的值。您需要将 $icon 变量包装为表达式 $($icon)_icon 或字符串格式 "@drawable/{0}_icon"- f $icon.我更喜欢字符串格式。

把它们放在一起,你会得到:

 $_ -replace "@drawable/(.*?)_icon", ("@drawable/{0}_icon" -f $icon)

关于Powershell - 查找未定义的字符系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11033365/

相关文章:

Windows 终端/Powershell 智能感知

c# - 针对sql server数据库执行脚本

powershell - 强制退出时执行代码块?

Azure - PowerShell 如何在重新连接后恢复/重新设置变量值

powershell - 无法通过 powershell 和门户在 Azure 上创建自定义镜像 VM

powershell - 在 VSTS 中使用 Powershell 通过 GMAIL 发送电子邮件

powershell - 使用PowerShell的Coinspot API

Powershell输出

powershell - 更新导出的csv powershell的列值

excel - 如何通过 PowerShell 添加 Excel 辅助轴标签?