从一串数据中,匹配固定格式字符串,但结尾是日期(数字),而日期不固定。如下列字符串:
需要匹配以<p>医疗开始,以2018-12-20</p>结束范围内的字符串,其中匹配对象含有大量这样格式的数据,"医疗"是固定的,但结束日期不固定。
....
<p>医疗器械临床试验机构备案号201800587</p>
<p>机构级别:三级甲等</p>
<p>地 址:广东省深圳市龙岗区布澜路29号</p>
<p>备案时间:2018-12-20</p>
....
$str = '<p>医疗器械临床试验机构备案号201800587</p>
<p>机构级别:三级甲等</p>
<p>地 址:广东省深圳市龙岗区布澜路29号</p>
<p>备案时间:2018-12-20</p>';
preg_match('/\<p\>医疗器械[\w\W]*\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}\<\/p\>/', $str, $matches);
var_dump($matches);
1.[wW]* 代表匹配对象包含回车换行
2.d{4}(-|/|.)d{1,2}1d{1,2} 代表匹配日期格式