2017-06-14 85 views
-1

我試圖創建一個正則表達式表達其捕獲例如標題之間的任意內容:匹配任何東西,直到下一個標題 - 正則表達式Powershell的

***** Heading1 ******** 
content 
more content 
more content 

***** Heading2 ******** 
content 
more content 
more content 

... 

只是爲了澄清,在我的每個部分試圖捕捉

content 
more content 
more content 

(也有可能存在的含量超過3行BTW)

我發現,類似的介紹我遇到的問題另一篇文章,但我は我無法操縱那個表情來達到我想要的目的。這篇文章可以在這裏找到:Regex match from start label until empty line or end label

我想做一個匹配除標題以外的所有東西的表達式,例如,可能像!!(\ *(。*)\ *)之類的東西,但它不會做我所做的要麼。

+1

將整個文件讀入內存,如果它不是太大,並用''(?m)^ \ * {3,} Heading \ * {3,}'正則表達式分割。 –

回答

0
$s = @' 
***** Heading1 ******** 
content 
more content 
more content 

***** Heading2 ******** 
content 
more content 
more content 

'@ 

[regex]::Matches($s, "^\*+ (?<Heading>.*?) \*+`r`n(?<Content>.*?)`r?`n\s*`r?`n", 'singleline, multiline') | 
    ForEach-Object { 

     $_.Groups['Heading'].Value 
     $_.Groups['Content'].Value 
     "--" 

    } 
相關問題