我想编写一个与Markdown blockquotes相匹配的正则表达式。基本上以>
开头的行,并且在第一个之后不需要它们。 blockquote以双换行符结束,然后是文本。
现在这就是我的正则表达式:
(^> ?[^\n]+\n*)+
正如您在屏幕截图中看到的那样,匹配得非常好,但reist
行之前的行(非引用文本之前的行)不应以黄色突出显示,不应该是块引用的一部分因此不应由正则表达式识别。
我该怎样防止这种情况?否定的外观?
答案 0 :(得分:1)
那是因为您在捕获组中有换行符(\ n *)。所以试试这个:
(^> ?.+?)((\r?\n\r?\n\w)|\Z)
(^>?。+?)=>捕获以>开头的所有内容并在...时停止捕捉 ((\ r?\ n \ r?\ n \ w)| \ Z)=> ...找到第一个包含以下字符的双重换行符,或者字符串是否结束(\ Z)