第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

<em>$0</em>為什么中間不能換成$1或者是別的數(shù)字而只能是0才能正確輸出呢? 而且為什么把<em>$0</em>這句去掉之后就不能正確運行了呢?

<?php

$str = '主要有以下幾個文件:index.php, style.css, common.js';

//將目標(biāo)字符串$str中的文件名替換后增加em標(biāo)簽

$p = '/\w+\.\w+/i';

$str = preg_replace($p, '<em>$0</em>',$str);


echo $str;


正在回答

2 回答

$0是指匹配到的所有結(jié)果,$1是指匹配到的所有結(jié)果的第一個子組。這里的第一個子組就是整個結(jié)果,所以換成$1也是可以的。

把<em>$0</em>去掉不能正確運行,是因為這個課程的要求本來就是給這些文字加em標(biāo)簽(就是把文字變成斜體的html標(biāo)簽)。如果去掉了就變成把那些文字替換成空值,那就只能看見2個逗號了。


1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕姐3423952

但我怎么換成$1是運行不出來的呢.........
2019-05-15 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕桂英9545975 回復(fù) 慕姐3423952

你上面的 $p = '/\w+\.\w+/i' 沒有加括號,所以沒有子組,寫成$p = '/(\w+\.\w+)/i'就有子組了,那么把$0換成$1也行
2019-05-16 回復(fù) 有任何疑惑可以回復(fù)我~
#3

慕桂英9545975 回復(fù) 慕桂英9545975

$0就是所有的結(jié)果,$1就是所有結(jié)果的第一個子組
2019-05-16 回復(fù) 有任何疑惑可以回復(fù)我~
#4

慕桂英9545975

舉個例子 $string = 'April 15 2014'; $pattern = '/(\w+) (\d+) (\d+)/i'; preg_match($pattern,$string, $matches); echo $matches[0].'<br>';//$0,顯示的是April 15 2014 echo $matches[1].'<br>';,//$1,顯示的是April echo $matches[2].'<br>';//$2,顯示的是15 echo $matches[3];//$3,顯示的是2014
2019-05-16 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)
1$p?=?'/\w+\.\w+/i';

如果你的正則式是這樣的話是沒有$1的,

但如果你正則式改為這樣

1$p?=?'/(\w+)\.(\w+)/i';

那你使用$1是可以通過的,顯示結(jié)果為:?主要有以下幾個文件:index, style, common

會將文件名輸出,而如果你使用$2顯示結(jié)果則為:主要有以下幾個文件:php, css, js

其實正如樓上所說,$0代表完整的模式匹配文本,即$p所匹配的的完整字符串,即index.php, style.css, common.js這些,而你加了如上的括號后,你可以認(rèn)為是將其匹配結(jié)果分組了,$1代表第一個括號匹配的字串,即index, style, common;$2代表第二個括號匹配的字串,即php, css, js。主要區(qū)別是加沒加括號對其進行分組。

希望對你有所幫助。


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

<em>$0</em>為什么中間不能換成$1或者是別的數(shù)字而只能是0才能正確輸出呢? 而且為什么把<em>$0</em>這句去掉之后就不能正確運行了呢?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號