5

我正在解析一个文档,并希望使用 php 的 preg_split() 将其拆分。

该文档被组织成具有以下标题的部分:

==Section Title==

问题是每个部分都有带有以下标题的小节:

===Subsection Title===

问题:有没有办法使用正则表达式来解析文档中两个等号之间但不在三个等号之间的内容?

谢谢!

PS我正在尝试学习正则表达式,但我仍然觉得它很混乱!

4

3 回答 3

6

这是应该工作的一个:

(?<!=)==(?!=)(.*)(?<!=)==(?!=)

这个怎么运作:

该模式(?<!=)==(?!=)出现两次(开始和结束)。(?<!=)它使用(negative lookbehind ) 和(?!=)(negative lookahead )匹配两个等号之前或之后没有另一个等号。这样做的目的是确保您不会意外匹配属于较大组的两个等号,例如===.

中间(.*)的 匹配两对之间存在的任何文本==

于 2012-09-29T23:58:21.547 回答
3

我不确定您是否只是担心这些标题,或解析所有 WikiCreole,但库可用于在 PHP 中解析 WikiCreole。

http://wiki.wikicreole.org/Libraries

于 2012-09-29T23:58:41.657 回答
1

假设在行的开头/结尾没有任何空格:

^==[^=]+==$
于 2012-09-30T00:01:48.860 回答