簡體   English   中英

PHP中的多行正則表達式問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM