【问题标题】:Find a string between html tags in Powershell在 Powershell 中的 html 标记之间查找字符串
【发布时间】:2014-05-20 05:18:25
【问题描述】:

我正在尝试编写一个 Powershell 脚本,该脚本将在 HTML 文件中的两个 HTML 标记之间提取一个字符串。我不知道值是什么,但我知道需要搜索哪些标签。此外,我知道标签确实 not 总是出现在一行的开头(即,它们可以在一行文本的中间)。最后,我也知道标签和它们之间的字符串永远不会断线。

我将文件的路径存储在一个变量中

$filePath = "C:\Path\file.html"

我正在尝试查找<h6></h6> 之间的任何值并将这些值存储在一个数组中。

【问题讨论】:

    标签: html powershell


    【解决方案1】:

    试试

    $myarray = gc $filepath | 
    % { [regex]::matches( $_ , '(?<=<h6>\s+)(.*?)(?=\s+</h6>)' ) } | 
    select -expa value
    

    这将删除开始和尾随空格(如果有)。 如果您还需要这些空格,请从正则表达式模式中删除 \s+

    【讨论】:

    • 完美!在发布这个之后,我更多地使用我的正则表达式,我几乎像你一样拥有它。最后一个问题:select -expa value 是做什么的?
    • @EustaceMonk 您可以尝试不使用管道到select -expa value 的命令,然后尝试使用管道到select value 以了解区别。测试它比我的英语好;)
    • 我看不出使用 select -expa value 和完全关闭它之间有什么区别。我确实看到了仅使用 select value 时的区别。
    • @EustaceMonk 没有到select -expa value 的管道会返回所有匹配信息。到select value 的管道返回pscustomobject 的数组。到select -expa value 的管道返回一个字符串数组
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 2016-01-12
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    相关资源
    最近更新 更多