[英]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.