[英]C# Regex multiple matching
我有這個正則表達式來提取表格之外的段落
((?<=<\/w:tbl>)<w:p [^>]*>.*?<\/w:p>(?=<w:tbl>)|(?<=<\/w:tbl>)<w:p [^>]*>.*?<\/w:p>(?=<w:sectPr.*>))
問題是它讀取所有段落,就好像它們是一個段落一樣(從第一個開始標記到最后一個結束標記,沒有中間段落)。 下面是一個文本示例。 在這種情況下,它匹配一個而不是 3
</w:tr></w:tbl><w:p w:rsidR="00F24C60" w:rsidRDefault="00F24C60" w:rsidP="009D46A1"><w:pPr><w:spacing w:before="240" w:after="240"/></w:pPr><w:r><w:t></w:t></w:r></w:p><w:p w:rsidR="00F24C60" w:rsidRDefault="00F24C60" w:rsidP="009D46A1"><w:pPr><w:spacing w:before="240" w:after="240"/></w:pPr><w:r><w:t></w:t></w:r></w:p><w:p w:rsidR="00346D4D" w:rsidRPr="00AC7B53" w:rsidRDefault="00F24C60" w:rsidP="009D46A1"><w:pPr><w:spacing w:before="240" w:after="240"/></w:pPr><w:r><w:t></w:t></w:r></w:p><w:tbl><w:tblPr>
有什么幫助讓它單獨匹配每個段落(3段)?
謝謝。
我認為,你不能,因為你想在另一個標簽中創建組,但正則表達式不知道它只是從頭到尾查看字符串的結構,假設 string: eabcabce
如果需要我接下來可以做的所有 abc 組(abc)
,但是我不能說我想要e
之間的所有abc
組。
您可以使用一些 xml 解析器。
對於這種特殊情況,您可以嘗試兩個正則表達式:
一些鏈接:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.