替换第二个和第三个下划线之间的任何内容

2024-05-29

我有一个 PowerShell 脚本行,它用“_”替换(删除)第二个和第三个下划线之间的字符:

get-childitem *.pdf | rename-item -newname { $_.name -replace '_\p{L}+, \p{L}+_', "_"}

例子:

12345_00001_LastName, FirstName_09_2018_Text_MoreText.pdf
12345_00002_LastName, FirstName-SecondName_09_2018_Text_MoreText.pdf
12345_00003_LastName, FirstName SecondName_09_2018_Text_MoreText.pdf

This _\p{L}+, \p{L}+_正则表达式仅适用于第一个示例。为了替换我使用过的所有内容_(?:[^_]*)_([^_]*)_(根据 regex101 这应该几乎可以工作)但输出是:

12345_09_MoreText.pdf

期望的输出是:

 12345_00001_09_2018_Text_MoreText.pdf
 12345_00002_09_2018_Text_MoreText.pdf
 12345_00003_09_2018_Text_MoreText.pdf

如何正确替换第二个和第三个下划线以及中间的所有内容与“_”?


如果您不想使用正则表达式 -

$files = get-childitem *.pdf        #get all pdf files
$ModifiedFiles, $New = @()  #declaring two arrays
foreach($file in $files)
{
    $ModifiedFiles = $file.split("_")
    $ModifiedFiles = $ModifiedFiles | Where-Object { $_ -ne $ModifiedFiles[2] }     #ommitting anything between second and third underscore
    $New = "$ModifiedFiles" -replace (" ", "_")
    Rename-Item -Path $file.FullName -NewName $New
}

样本数据 -

$files = "12345_00001_LastName, FirstName_09_2018_Text_MoreText.pdf", "12345_00002_LastName, FirstName-SecondName_09_2018_Text_MoreText.pdf", "12345_00003_LastName, FirstName SecondName_09_2018_Text_MoreText.pdf"
$ModifiedFiles, $New = @()  #declaring two arrays
foreach($file in $files)
{
    $ModifiedFiles = $file.split("_")
    $ModifiedFiles = $ModifiedFiles | Where-Object { $_ -ne $ModifiedFiles[2] }     #ommitting anything between second and third underscore
    $New = "$ModifiedFiles" -replace (" ", "_")
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

替换第二个和第三个下划线之间的任何内容 的相关文章

随机推荐

  • 如何正确使用android.test.ServiceTestCase?

    我的应用程序是在 system app 中运行的服务 com abc def MyApp 尝试为其编写单元测试时 我在运行时在 logcat 中收到此错误 I TestGrouping 5647 TestCase class com abc
  • 使用 Scanner 解析逗号分隔值:不匹配异常

    我意识到有关该主题的主题有很多 但我无法找到一个可以回应此案例的主题 我有多行输入 其格式无法编辑 例如 我有 1 0 55 0 20 0 05 1 2 3 正如您所知 第一个是一个整数 并且不被任何东西分隔 接下来 我们有 3 个双精度数
  • 即发即忘,使用 Task.Run 或仅调用异步方法而不等待

    一般来说 特别是当涉及到库或控制台应用程序时 为了解雇并忘记async方法 是不是更好地调用async方法无await荷兰国际集团或使用Task Run 基本上 public static void Main Doing DoSomethi
  • jQuery 绑定效率

    我在数千个元素和输入上使用多个 jQuery 绑定时遇到加载速度问题 是否有更有效的方法来执行此操作 该网站能够通过ajax调用在产品列表之间切换 页面无法刷新 有些列表有 10 个项目 有些有 100 个 有些超过 2000 个 当我开始
  • 为什么 iPhone 应用程序的 main() 函数没有机会完成?

    考虑以下main 大多数 iPhone 应用程序都采用以下方法 int main int argc char argv NSAutoreleasePool pool NSAutoreleasePool alloc init int retV
  • TSQL - 执行CLR权限

    我从 CLR net Assembly 获得了一个 sql 过程 该过程在执行时返回错误 Msg 6522 Level 16 State 1 Procedure sp HelloWorld Line 0 A NET Framework er
  • 从 WCF 服务返回接口

    我有一些 NET 远程处理代码 其中在某些服务器端类中实现的工厂方法返回具体对象的接口 也在同一台服务器上执行 NET 远程处理会自动创建代理 并允许我将接口传递给客户端 然后客户端可以直接调用它们 接口示例 public interfac
  • Bootstrap - Sass:相对字形图标路径

    如何在 bootstrap sass 版本中设置相对字形图标路径 默认情况下 css font face 中使用的路径是绝对路径 font face font family Glyphicons Halflings src url font
  • Xcode - 发布和分发配置中的 Malloc_Error

    仅当我在设备上选择发布或分发配置时 我才会收到此错误 在模拟器上它运行良好 请问 我错在哪里 cc1obj 4113 malloc mmap size 429379584 failed error code 12 error can t a
  • 在 R 中修改传单弹出窗口

    我想修改 R 中传单弹出窗口的外观 帮助文件指出 in the popupOptions 函数需要 传递给底层 Javascript 对象构造函数的额外选项 In 这个例子 https rstudio github io leaflet p
  • 在 Vue 3 的 Jest 测试中模拟 vue-router useRouter()

    我在我的应用程序中使用 Vue 3 和 Vue Router 并且在使用 Jest 对使用的组件创建单元测试时遇到了问题useRoute 例如以下内容
  • 将 mongo 数组转换为具有键值对的对象

    我有一个包含字符串数组的 mongo 文档 我需要将这个特定的字符串数组转换为包含键值对的对象数组 以下是我目前的做法 id ObjectId 57e3720836e36f63695a2ef2 platform A1 available C
  • Xamarin.Forms:独立于平台的应用程序菜单

    我正在编写 Xamarin Forms 桌面应用程序 最终希望以 MacOS 和 Windows 为目标 Xamarin Forms 是否有任何独立于平台的机制可用于构建应用程序菜单 即您可以在其中找到 文件 编辑 查看 等的菜单 并且出现
  • 如何从实体框架中的 .edmx 文件生成数据库?

    我不得不突然转而使用 Code First Entity Framework 4 1 一开始我对这个框架一无所知 但在过去的 8 个小时里 我现在对阅读博客和文章感到更加自在 特别是这个博客 http blogs msdn com b ad
  • 匹配一对未转义的平衡分隔符

    如何匹配一对不被反斜杠转义的平衡分隔符 本身不被反斜杠转义 无需考虑嵌套 例如 对于反引号 我尝试了此操作 但是转义的反引号无法按转义的方式工作 regex lt lt hello how are you gt 1 how expected
  • 无法从 Web 主机本身以外的任何地方连接到任何 Web 主机的 MySQL 数据库

    我有 2 个不同的虚拟主机 pagodabox 000webhost 都是免费的 并且我已经设置了localhost与MySQL 我已经在他们三个上安装了 wordpress 它们在自己的域中工作得很好 即 什么时候localhostwor
  • OpenCV Sobel 滤波器 - 为什么它看起来这么糟糕,尤其是与 Gimp 相比?

    我正在尝试使用 OpenCV 重建一些我之前在 Gimp 中完成的预处理 第一级是用于边缘检测的 Sobel 滤波器 它在 Gimp 中运行得很好 现在这是我对 OpenCV 的尝试 opencv imgproc Sobel src sca
  • 在应用程序开发中缩放字体大小的理想方法是什么?

    我知道这个问题可能听起来有点奇怪 我是 Flutter 开发的新手 在使我的应用程序响应时 我在缩放文本时总是遇到问题 如果我保持字体大小不变 例如 10 或 20 有时在高分辨率设备上看起来太小 在小手机上看起来太大 然后我尝试根据屏幕尺
  • 使用 OpenXML 读取列中的 Excel 工作表数据

    有没有一种方法可以使用 OpenXML SDK 和 C 按列而不是按行读取 Excel 工作表 我已经尝试使用 EPPlus 包 但遇到了一些问题 因为我的应用程序还使用 EPPlus 不支持的 xslm 文件 因此 我需要 OpenXML
  • 替换第二个和第三个下划线之间的任何内容

    我有一个 PowerShell 脚本行 它用 替换 删除 第二个和第三个下划线之间的字符 get childitem pdf rename item newname name replace p L p L 例子 12345 00001 L