正则表达式匹配哈希标记,多行(PHP)

我正在尝试制作一个wiki标记样式解析器,其中包含由标签定义的标头。 例如:

# Heading 1

Some information here below the heading

Another paragraph of information

## Subheading 1

Paragraph related to the subheading

我想要做的是捕获一个哈希标签和另一个哈希标签之间的所有内容(以及哈希标签本身)

所以在上面,我想要捕捉

 Heading 1 (and #)

 Some information here below the heading

 Another paragraph of information

和...

 Subheading 1 (and ##)

 Paragraph related to the subheading

到目前为止,我有/(#+) ?(.+)/和完全适用于哈希标签后,在同一行的内容,而不是通过换行分隔的任何文本。

但是,我似乎无法在正则表达式模式的(.+)部分中匹配和换行符,也没有吞噬所有以哈希标记开头的新行。

我相信这很简单。


你可以使用这个基于否定的正则表达式:

# *([^#]+)

RegEx演示

码:

if ( preg_match_all('/# *([^#]+)/', $input, $matches) )
   print_r($matches[1]);
链接地址: http://www.djcxy.com/p/29881.html

上一篇: Regex to match everything between hash tags, multiline (PHP)

下一篇: PHP regex find BBCode that is not surrounded by another BBCode