Regex 用于在两个正则表达式模式之间匹配文本的正则表达式
我正在寻找一种从文本文档中捕获文本及其段落标题的方法 文本文件:Regex 用于在两个正则表达式模式之间匹配文本的正则表达式,regex,regex-negation,regex-lookarounds,regex-group,Regex,Regex Negation,Regex Lookarounds,Regex Group,我正在寻找一种从文本文档中捕获文本及其段落标题的方法 文本文件: paraTitle-1 -------- Lines and words empty.... more lines still part of paraTitle-1 paraTitle-2 -------- Lines and words empty.... more lines still part of paraTitle-2 我想捕获标题和下面的文本 array = [paraTitle-1: <t
paraTitle-1
--------
Lines and words
empty....
more lines
still part of paraTitle-1
paraTitle-2
--------
Lines and words
empty....
more lines
still part of paraTitle-2
我想捕获标题和下面的文本
array = [paraTitle-1: <text...below paraTitle-11>,
paraTitle-2: <text below paraTitle-2>]
我尝试了几次pattern?下面的正则表达式可以: ----\R.*\R----\R?:\R*\R---\R*+ 看 标题分隔线----也可以指定为-{8},如果需要,可以更容易地调整为可变长度,例如,它可以是6或更多,而不是8个破折号:-{6,} 说明: 捕获一行文本段落标题:
(.*)\R
这个不匹配换行符
\R匹配换行符,包括Windows CRLF对。如果您的正则表达式引擎不支持\R\n,请使用\R?\n作为简单的替代方法。
确保捕获的文本不是标题分隔符行:
(?!--------\R)
--------\R
跳过必需的标题分隔符行:
(?!--------\R)
--------\R
将段落文本捕获为一组重复的行:
((?:xxx)+)
一条线有一个可选的前导线打断。第一条线没有:
\R?.*
但要确保这一行不是下一段的标题,也就是说,它不是紧跟标题分隔线的一行
(?!.*\R--------\R)
所有段落的格式是否相同?i、 e:标题-?是的。所有段落的标题后面都有一个换行符\n,至少有6个-后面有另一个换行符\n,然后是段落文本。请重试。如果行尾为\n,请使用?*\n-{5,}\n?[\s\s]*??=\n.*\n-{5,}\n |$。您不必使用命名组,但是如果您需要这样的数组,您的语言似乎支持它们。我不知道如何处理文本正文中的潜在字符