當前位置:首頁 » 編程語言 » php匹配多行

php匹配多行

發布時間: 2022-06-13 10:10:16

php正則匹配多處內容

第一個問題:
preg_match("/<div.*?>((?:(?!<div).)+?)<\/div>/", $content, $match);
echo $match[1];

第二個問題,LZ是不是想匹配出b、c中先出現的一處中的內容?這樣的話:
$content = '
<div class="b">內容</div>

<div class="c">內容</div>';

preg_match("/<div\sclass=\"[bc]\">(.+?)<\/div>/", $content, $match);
echo $match[1];

② 如何用正則表達式匹配到PHP多行注釋

<?php
$str = '
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/';
preg_match_all('|/\*.*?\*/|is', $str, $matches);
print_r($matches);

exit;

③ PHP正則問題, 無法匹配到多個數據

你是要匹配頁面中的html標簽啊。。。
這個可能有換行或者其他字元,你看你的正則裡面用的是.這個是無法匹配換行、換頁的
然後你的標簽都是小寫字母,但是可能還是大寫字母,於是也有bug,
所以還是有很大的漏洞,而且你用網路流傳的.*?,這個有很大的漏洞。。。

有可能會匹配到前面類似所有的,直接到最後一個符合的,於是出錯,。。。

④ 如何使用php正則匹配多行注釋的內容

/\/[*]{2,}[^*]+[*]{2,}\//g;

⑤ php 正則匹配

不是很理解你要達到的效果,如果是要匹配||之間的內容,則正則表達式如下:

<meta charset="utf-8" />
<?php
$str='|0|123|1321|你在哪兒!|5|123|1321|我在哪兒!| ';
preg_match_all("/(.*?)\|/s",$str,$arr);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>

匹配結果:

Array
(
[0] => Array
(
[0] => |
[1] => 0|
[2] => 123|
[3] => 1321|
[4] => 你在哪兒!|
[5] => 5|
[6] => 123|
[7] => 1321|
[8] => 我在哪兒!|
)

[1] => Array
(
[0] =>
[1] => 0
[2] => 123
[3] => 1321
[4] => 你在哪兒!
[5] => 5
[6] => 123
[7] => 1321
[8] => 我在哪兒!
)

)

⑥ php正則表達式問題

/後邊的是修正符
其中i是不區分大小寫
修正符很有用的
例子:
<?php
//標記在整個模式之外;
例://$mode="/\bis\b/U",其中U在外面;
//修正符:i 不區分大小寫的匹配;

//如:"/abc/i"可以與abc或aBC或ABc等匹配;
//修正符:m 將字元串視為多行,不管是那行都能匹配;

例://模式為:$mode="/abc/m";
//要匹配的字元串為:$str="bcefg5e\nabcdfe"
//注意其中\n,換行了;abc換到了下一行;
//$str和$mode仍可以匹配,修正符m使得多行也可匹配;
//修正符:s 將字元串視為單行,換行符作為普通字元;

例://模式為:$mode="/pr.y/";
//要匹配字元串為:$str="pr\ny";
//兩者不可匹配; . 是除了換行以外的字元可匹配;
//修改下模式為:$mode="/pr.y/s";
//其中修正符s將\n視為普通字元,即不是換行;
//最後兩者可以匹配;
//修正符:x 將模式中的空白忽略;
//修正符:A 強制從目標字元串開頭匹配;

例://$mode="/abc/A";
//可以與$str="abcsdfi"匹配,
//不可以與$str2="sdsdabc"匹配;
//因為$str2不是以abc開頭;
//修正符:D 如果使用$限制結尾字元,則不允許結尾有換行;

例://模式為:$mode="/abc$/";
//可以與最後有換行的$str="adshabc\n"匹配;
//元子符$會忽略最後的換行\n;
//如果模式為:$mode="/abc/D",
//則不能與$str="adshabc\n"匹配,
//修正符D限制其不可有換行;必需以abc結尾;
//修正符:U 只匹配最近的一個字元串;不重復匹配;

例:
如模式為:
$mode="/a.*c/";
$str="abcabbbcabbbbbc" ;
preg_match($mode,$str,$content);
echo $content[0]; //輸出:abcabbbcabbbbbc;

//如果$mode="/a.*c/";變成$mode="/a.*c/U";
// 則只匹配最近一個字元串,輸出:abc;

//修正符:e 配合函數preg_replace()使用,
可以把匹配來的字元串當作正則表達式執行;
?>

⑦ PHP正則匹配單行文本成功多行失敗的問題

/im改成/ims試試
s(PCRE_DOTALL)
如果設定了此修正符,模式中的圓點元字元(.)匹配所有的字元,包括換行符。沒有此設定的話,則不包括換行符。這和 Perl 的 /s 修正符是等效的。排除字元類例如 [^a] 總是匹配換行符的,無論是否設定了此修正符。

⑧ PHP如何匹配html標簽中多個換行的內容

$str='<p class="p1">
<a href="這里是鏈接"
title="清醒了">第2回</a>
</p>';
preg_match_all('%<p class="p1"[^"]*href="([^"]*)"[^"]*title="([^"]*)"%',$str,$arr);
echo $arr[1][0];
echo $arr[2][0];

⑨ php怎麼正則匹配js的多行注釋並刪除多行注釋

獲取文本內容file_get_contents('1.js');
正則匹配,前後截取
<?php
$str = 'aaaa/*123121321312312*/ccc';
//$pattern = '/^\/\*.*\*\/$/';
$pattern = '/\/\*.*\*\//';
//preg_match($pattern, $str,$matches);
echo '<pre>';
var_mp(preg_replace($pattern, '', $str));exit;
如果想要獲取注釋內容,可以把我注釋的兩行代碼打開。不打開注釋就是直接刪除掉了。
結果為:string(7) "aaaaccc"

熱點內容
pr默認存儲 發布:2024-05-05 04:29:31 瀏覽:552
roblox跑酷腳本怎麼做 發布:2024-05-05 03:57:35 瀏覽:702
捷徑清理緩存 發布:2024-05-05 03:57:35 瀏覽:478
ftputility哪裡下載 發布:2024-05-05 03:47:13 瀏覽:1000
雷凌運動版如何連接安卓手機導航 發布:2024-05-05 03:42:48 瀏覽:268
自動鬼使黑腳本 發布:2024-05-05 03:10:49 瀏覽:880
游戲腳本編程書籍推薦 發布:2024-05-05 02:59:13 瀏覽:72
編譯器書籍推薦 發布:2024-05-05 02:57:02 瀏覽:56
電池存儲溫度 發布:2024-05-05 02:53:07 瀏覽:207
安卓在美國怎麼下載 發布:2024-05-05 02:31:06 瀏覽:925