[英]Multiline regex issue in PHP
考慮下面的代碼,為什么它不起作用?
<?php
$str = "
<h4>
title
</h4>
";
$result = preg_match_all ('/<h4>([\d\D])<\/h4>/mi', $str, $matches);
var_dump($matches);
你可能意味着
$str = "
<h4>
title
</h4>
";
$result = preg_match_all ('/<h4>(.+?)<\/h4>/si', $str, $matches);
var_dump($matches);
您應用的正則表達式'/<h4>([\\d\\D])<\\/h4>/mi'
意思是“匹配一個開頭h4, 一個數字或非數字字符和一個結尾h4。 “ 但是您要匹配的字符很多,因此需要指定一個量詞(“多個”, +
)。 更新:您需要一個非貪婪的量詞, +?
,如果您有多個h4(很有可能!),並且類[\\d\\D]
可以簡化為“任何字符”, .
。 還有一點:您需要使用/s
而不是/m
來獲得所需的行為。
這可能包括您的比賽中的換行符!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.