PHP:检查字符串是否具有编号列表的格式

时间:2015-03-21 15:05:23

标签: php regex

我想检查一个字符串是否具有编号列表的格式,以正确格式化这一行:

1. Something
Text
1.1. Anything
Text

应该

<h2>1. Something</h2>
Text
<h3>1.1. Anything</h3>
Text

等等......

我为preg_match尝试了类似的东西:

#([\d]*\.)*\s*\K(.+?)$#s

1 个答案:

答案 0 :(得分:1)

您可以使用:

$str = "1. Something\nText\n1.1. Anything\nText"; 

$result = preg_replace_callback('/^\d+\.((?:\d+\.)*)\h+.+$/m', 
          function($m) {$t=($m[1]!="")?'h3':'h2'; return "<$t>$m[0]</$t>";}, $str);

<强>输出:

<h2>1. Something</h2>
Text
<h3>1.1. Anything</h3>
Text

RegEx Demo