如何定义与Markdown中的blockquotes匹配的正则表达式?

时间:2015-02-08 06:36:20

标签: regex

我想编写一个与Markdown blockquotes相匹配的正则表达式。基本上以>开头的行,并且在第一个之后不需要它们。 blockquote以双换行符结束,然后是文本。

现在这就是我的正则表达式:

(^> ?[^\n]+\n*)+

enter image description here

正如您在屏幕截图中看到的那样,匹配得非常好,但reist行之前的行(非引用文本之前的行)不应以黄色突出显示,不应该是块引用的一部分因此不应由正则表达式识别。

我该怎样防止这种情况?否定的外观?

1 个答案:

答案 0 :(得分:1)

那是因为您在捕获组中有换行符(\ n *)。所以试试这个:

(^> ?.+?)((\r?\n\r?\n\w)|\Z)

(^>?。+?)=>捕获以>开头的所有内容并在...时停止捕捉 ((\ r?\ n \ r?\ n \ w)| \ Z)=> ...找到第一个包含以下字符的双重换行符,或者字符串是否结束(\ Z)

查看演示:https://regex101.com/r/eK5dC6/3