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

求PowerShell命令:统计PDF文件中两个指定单词间的字符数

统计文件中指定两个单词间字符数的PowerShell实现

以下是修改后的PowerShell脚本,可实现遍历文件并统计指定两个单词之间的字符数,同时保留原脚本的总字符、单词、行数统计功能:

首先设置要匹配的起始和结束单词:

$startWord = "你的起始单词"
$endWord = "你的结束单词"

完整脚本:

Get-ChildItem -Include *.* -Recurse | ForEach-Object {
    # 一次性读取文件全部内容,支持跨多行匹配
    $content = Get-Content $_ -Raw
    
    # 用正则匹配起始单词到结束单词之间的内容(不含单词本身)
    $match = [regex]::Match($content, "(?<=$startWord)(.*?)(?=$endWord)")
    # 匹配成功则取字符数,否则返回0
    $betweenCharCount = if ($match.Success) { $match.Value.Length } else { 0 }

    $_ | Select-Object Name,
        @{n="指定单词间字符数";e={ $betweenCharCount }},
        @{n="总字符数";e={ ($content | Measure-Object -Character).Characters }},
        @{n="单词数";e={ ($content | Measure-Object -Word).Words }},
        @{n="行数";e={ ($content | Measure-Object -Line).Lines }}
} | Format-Table -AutoSize

关键说明

  • Get-Content -Raw:一次性读取整个文件内容,避免逐行处理导致跨多行的单词匹配失败。
  • 正则表达式(?<=$startWord)(.*?)(?=$endWord):使用正向零宽断言,精准匹配两个单词之间的内容,且不会把起始/结束单词本身计入字符数;.*?是非贪婪匹配,确保取第一个起始单词到第一个结束单词之间的内容。
  • 如果需要统计所有出现的单词对之间的总字符数,可以把匹配逻辑改成:
$matches = [regex]::Matches($content, "(?<=$startWord)(.*?)(?=$endWord)")
$betweenCharCount = ($matches | ForEach-Object { $_.Value.Length } | Measure-Object -Sum).Sum

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:01:46