我有来自文本文件的以下示例数据
<div id="why">
No line behind me, please!
</div>
<div id="large-div-text">
Large div text
</div>
我想在两个“开始:”和 - }
之间提取线条我试图用regexp提取细节,但输出是一行。我想用换行符输出
帮助。
答案 0 :(得分:1)
这将获得文本文件的原始内容(意味着它将拉入回车符和新行)。然后使用该数据执行正则表达式以在&#34;开始:&#34;之间提取所需的数据。和&#34; - }&#34;拉出所有的比赛。然后它只输出找到的每个匹配的值。如果你想将它存储在变量中,你可以在最后一个foreach循环中存储它。
$file = Get-Content -path "C:\text.txt" -Raw
$wantedData = ($file | select-string '(?<=Start\s:\n)[\w\s]*(?=-})' -allMatches |
foreach {$_.Matches} | Foreach {$_.Value})
答案 1 :(得分:0)
可能不是最好的方法,但只要它始终采用这种格式,它就会起作用:
layerCount
答案 2 :(得分:0)
在start和 - }之间总是有3个值吗?
如果是这样的话:
$Content = Get-Content -path C:\Text.txt
$ content | Select-String -Pattern“Start:” - Context 0,3 | foreach {$ _。Context.DisplayPostContext}