You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell如何提取WPL文件中<seq>与</seq>间的多行内容?

解决WPL文件提取<seq>内多行内容的问题

问题根源

你当前代码失效的核心原因:

  • Get-Content 默认返回字符串数组,传递给 [regex]::Match 时会被拼接成单字符串,数组元素间的换行被替换为空格,导致原格式丢失
  • 正则未启用单行模式,.*? 无法匹配换行符,无法跨多行捕获<seq>与</seq>之间的完整内容

修正后的PowerShell代码

$fileName = "C:\Users\user\Music\Playlists\1.wpl"
# 用-Raw参数读取整个文件为单字符串,保留原始换行与格式
$file = Get-Content $fileName -Raw

# 启用单行模式(?s),让.匹配换行符;精准捕获<seq>标签内的内容
$pattern = "(?s)<seq>(.*?)</seq>"

# 提取内容后分割成行,过滤空行并去除首尾缩进
$results = [regex]::Match($file, $pattern).Groups[1].Value -split [Environment]::NewLine | 
    Where-Object { $_ -match '\S' } | 
    ForEach-Object { $_.Trim() }

$results

代码关键说明

  1. Get-Content -Raw:一次性读取文件全部内容,完整保留换行、缩进等原始格式
  2. 正则单行模式(?s):让正则中的.可以匹配换行符,确保跨多行捕获目标内容
  3. 格式清理:
    • 按换行分割内容为数组
    • 过滤空行或仅含空白的无效行
    • 去除每行首尾的缩进空白,得到整洁的<media>标签行

最终输出结果

<media src="C:\Users\user\Downloads\Katzianerova vojna.mp3"/>
<media src="C:\Users\user\Downloads\Rat i mir u povijesti III- dio.mp3"/>

内容的提问来源于stack exchange,提问作者overflowed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 03:10:28