亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

$p = "|<[^>]+>(.*?)</[^>]+>|i";???????

$p = "|<[^>]+>(.*?)</[^>]+>|i";這個表達式如何理解?

正在回答

4 回答

$p = "|<[^>]+>(.*?)<[^>]+>|i";

背景:.*?表示最小匹配所有字符(拒絕貪婪匹配)

分析:
首先,<[^>]+>對應<li>,在方括號內部的^表示除了方括號內的原子以外的字符,即[^>]表示除了>以外的任意一個字符,+表示一個或者多個字符。
后面的</[^>]+>也是同理,只不過在前面多添加了一個/反斜杠。
最后,在此規則串中,分界符為||而不是//。因此,對于其中的</li>里面的/可以不使用轉義字符,直接使用/。

初學,有錯誤請見諒~

5 回復 有任何疑惑可以回復我~
#1

Allengd

理解的很好
2017-05-25 回復 有任何疑惑可以回復我~

尖括號開始把我也忽悠住了,看了別人的回復才明白了。.*?匹配除換行符以外的0次或1次,懶惰模式

0 回復 有任何疑惑可以回復我~

<是左尖括號,[^>]指除了右尖括號以外的任何字符,+指匹配一次或多次,>指右尖括號,(.*?)是一種懶惰匹配模式,匹配任何可見字符,</[^>]+>同理,i指忽略大小寫

3 回復 有任何疑惑可以回復我~

開頭和結尾的|應該和/一樣吧 因為html標簽里面有/所以用|不用轉義嗎?? <匹配<, [^>]+匹配不是>的字符在[]里面^代表不是后面的字符額+表示匹配多次,>匹配>;(.*?)表示組 .匹配除換行符 \n 之外的任何單字符,*?代表非貪婪模式;后面的還開頭的一個差不多匹配</xxxx>;i代表不區分大小寫

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

$p = "|<[^>]+>(.*?)</[^>]+>|i";???????

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號