選擇,我想搜索文件中的一個模式,我可以很容易地像做:當我發現這個第一圖案Powershell的先進的正則表達式從文件
gc $filename | select-string $pattern
但是,使用位置(線)第一場比賽作爲一個起點,然後我想開始尋找第二個模式。一旦第二個模式匹配了,我就想返回第一個和第二個匹配之間的所有行,丟棄匹配的行。
選擇,我想搜索文件中的一個模式,我可以很容易地像做:當我發現這個第一圖案Powershell的先進的正則表達式從文件
gc $filename | select-string $pattern
但是,使用位置(線)第一場比賽作爲一個起點,然後我想開始尋找第二個模式。一旦第二個模式匹配了,我就想返回第一個和第二個匹配之間的所有行,丟棄匹配的行。
比方說,你的第一個模式是模式1和第二圖案是模式2
則表達式將是(?<=pattern1)(.*?)(?=pattern2)
(?<=pattern1)
- 這將匹配前綴模式,但是從捕獲
(?=pattern2)
排除它 - 這將匹配後綴模式但排除它從捕獲
@bomber - 沒有任何答案有效? – 2011-05-24 00:43:50
有可能是一種更優雅的方式,但這將工作
function ParseFile
{
param([string] $FileName)
$s = gc $FileName;
for($x = 0 ; $X -lt $s.count; $x++)
{
if(-not $first){
if($s[$x] -match "1000"){
$first =$x
}
}
else{
if($s[$x] -match "1075"){
$second = $x ;
break;
}
}
}
(($first +1) .. ($second -1))|%{
$ret += $s[$_]
}
return $ret;
}
我用foreach
與$foreach.Movenext()
:
foreach ($line in (Get-Content $file))
{
if ($line -match $firstTag)
{
do {
$line
$foreach.MoveNext()
} until ($foreach.current -match $secondTag)
continue
}
}
這將只是一個一個返回的每一行,但你可以做你該做的環中喜歡什麼,如果你需要處理結果某種程度上
這是我的一個(法國拼裝; O)),想象中的文件C:\ TEMP \ gorille.txt:
C'est à travers de larges grilles,
Que les femelles du canton,
Contemplaient un puissant gorille,
Sans souci du qu'en-dira-t-on.
Avec impudeur, ces commères
Lorgnaient même un endroit précis
Que, rigoureusement ma mère
M'a défendu de nommer ici...
Gare au gorille !...
這裏是廣州之間的」文本「和‘endroit’
PS > (((Get-Content -Path C:\temp\gorille.txt) -join "£" | Select-String -Pattern "(?=canton)(.*)(?<=endroit)").matches[0].groups[0].value) -split "£"
canton,
Contemplaient un puissant gorille,
Sans souci du qu'en-dira-t-on.
Avec impudeur, ces commères
Lorgnaient même un endroit
我參加所有以特殊字符的線條‘£’(選擇onather之一,如果使用),然後使用@Alex氮雜格局cmdlet的Select-String
然後再次分裂。
$start = select-string -Path $path -pattern $pattern1 -list |
select -expand linenumber
$end = select-string -path $path -pattern $pattern2 |
where-object {$_.linenumber -gt $start} |
sort linenumber -desc |
select -first 1 -expand linenumber
(get-content $path)[$start..($end -2)]
你能提供一個你需要的輸入和輸出的例子嗎? – 2011-05-10 07:01:09
windows ini文件與我正在解析的文件類型非常接近 – bomber 2011-05-11 22:44:45