使用preg_replace()替换特殊字符之间的内容

时间:2015-08-26 18:08:55

标签: php regex

我有一个段落 -

== one ===

==== two ==

= three ====

=符号的数量在段落的每一行都有所不同。

我想写一个 preg_replace() 表达式,这样我就可以替换=符号之间的文本

示例:

== DONE ===

==== DONE ==

= DONE ====

我尝试了preg_replace("/\=+(.*)\=+/","DONE", $paragraph),但这并不奏效。我哪里错了?

1 个答案:

答案 0 :(得分:1)

您必须放回=

此外,代替.*使用[^=]*(匹配不是=的字符),以便=不会因为替换而被吃掉。

此外,您不必逃避=

preg_replace("/(=+)([^=]*)(=+)/","$1 DONE $3", $paragraph);

See it in action