課程
/后端開(kāi)發(fā)
/PHP
/PHP進(jìn)階篇
(.*?)這個(gè)匹配的是什么
2017-07-31
源自:PHP進(jìn)階篇 3-6
正在回答
其實(shí)有兩個(gè)plist,一個(gè)是SwiftWeather的,一個(gè)是SwiftWeatherTests里面的,你看下是不是寫(xiě)錯(cuò)了是不是版本的問(wèn)題?
$subject = "abcaaaaaaaaaadef";
$pattern = '/a.*?d/';
preg_match($pattern, $subject, $matches);
print_r($matches);?
//在這種情況下,.*會(huì)一直匹配,加了?后,變成非貪婪模式,?后跟的是d,所以會(huì)匹配至d結(jié)束
//運(yùn)行結(jié)果是
Array ( ????[0]?=>?abcjhjkhhljkhd )
加了()小括號(hào)之后,會(huì)再一次輸出小括號(hào)中匹配的內(nèi)容
$subject = "abcjhjkhhljkhdef";
$pattern = '/a(.*?)d/';
print_r($matches);
結(jié)果為:
Array ( ????[0]?=>?abcjhjkhhljkhd ????[1]?=>?bcjhjkhhljkh )
我看的時(shí)候也被這個(gè)問(wèn)題困擾了,不曉得現(xiàn)在的理解對(duì)不對(duì),加油,共勉。
.點(diǎn)號(hào)字符,? 匹配任何單個(gè)字符(除換行符外)。
*號(hào)字符,匹配0或多次匹配,意思是要么不匹配,要么匹配多次,點(diǎn)號(hào)與星號(hào).*在一起是匹配人任意數(shù)量的除換行符之外的字符。
?問(wèn)號(hào)字符,作為量詞,表示 0 次或 1 次匹配。位于量詞后面用于改變量詞的貪婪特性。重要的是在量次后面改變其貪婪屬性,前面的*是量次,且是貪婪屬性,后面跟問(wèn)號(hào)?,則變化成非貪婪屬性,則盡可能少的匹配,也就是從之前的匹配任意數(shù)量的字符(仍然是換行符除外)變?yōu)榱?次或一次匹配,匹配成功就一次,匹配失敗就0次。
()圓括號(hào),舉例說(shuō)明,eg: a(b)c,在這個(gè)例子中,用abcac來(lái)進(jìn)行匹配的話,可以得到ac,abc兩個(gè)結(jié)果,意思是小括號(hào)中的內(nèi)容在能匹配的情況下是需要匹配的,匹配不到內(nèi)容也可以跳過(guò)。
以上是我的理解,謝謝!
兩個(gè)字符之間的字符串或數(shù)字
.點(diǎn) ?匹配任何單個(gè)字符。例如正則表達(dá)式r.t匹配這些字符串:rat、rut、r t,但是不匹配root。 * 匹配0或多個(gè)正好在它之前的那個(gè)字符。例如正則表達(dá)式。*意味著能夠匹配任意數(shù)量的任何字符。 ? 匹配0或1個(gè)正好在它之前的那個(gè)字符。注意:這個(gè)元字符不是所有的軟件都支持的。
舉報(bào)
輕松學(xué)習(xí)PHP中級(jí)課程,進(jìn)行全面了解,用PHP快速開(kāi)發(fā)網(wǎng)站程序
2 回答為什么$0是匹配index.php
2 回答#^[^0-9]$#其實(shí)是匹配什么?
1 回答正則匹配輸出的數(shù)組為什么是這樣的。
1 回答為什么匹配了兩次
1 回答preg_match怎么精準(zhǔn)匹配的
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2022-03-26
其實(shí)有兩個(gè)plist,一個(gè)是SwiftWeather的,一個(gè)是SwiftWeatherTests里面的,你看下是不是寫(xiě)錯(cuò)了是不是版本的問(wèn)題?
2018-07-03
$subject = "abcaaaaaaaaaadef";
$pattern = '/a.*?d/';
preg_match($pattern, $subject, $matches);
print_r($matches);?
//在這種情況下,.*會(huì)一直匹配,加了?后,變成非貪婪模式,?后跟的是d,所以會(huì)匹配至d結(jié)束
//運(yùn)行結(jié)果是
加了()小括號(hào)之后,會(huì)再一次輸出小括號(hào)中匹配的內(nèi)容
$subject = "abcjhjkhhljkhdef";
$pattern = '/a(.*?)d/';
preg_match($pattern, $subject, $matches);
print_r($matches);
結(jié)果為:
我看的時(shí)候也被這個(gè)問(wèn)題困擾了,不曉得現(xiàn)在的理解對(duì)不對(duì),加油,共勉。
2018-07-03
.點(diǎn)號(hào)字符,? 匹配任何單個(gè)字符(除換行符外)。
*號(hào)字符,匹配0或多次匹配,意思是要么不匹配,要么匹配多次,點(diǎn)號(hào)與星號(hào).*在一起是匹配人任意數(shù)量的除換行符之外的字符。
?問(wèn)號(hào)字符,作為量詞,表示 0 次或 1 次匹配。位于量詞后面用于改變量詞的貪婪特性。重要的是在量次后面改變其貪婪屬性,前面的*是量次,且是貪婪屬性,后面跟問(wèn)號(hào)?,則變化成非貪婪屬性,則盡可能少的匹配,也就是從之前的匹配任意數(shù)量的字符(仍然是換行符除外)變?yōu)榱?次或一次匹配,匹配成功就一次,匹配失敗就0次。
()圓括號(hào),舉例說(shuō)明,eg: a(b)c,在這個(gè)例子中,用abcac來(lái)進(jìn)行匹配的話,可以得到ac,abc兩個(gè)結(jié)果,意思是小括號(hào)中的內(nèi)容在能匹配的情況下是需要匹配的,匹配不到內(nèi)容也可以跳過(guò)。
以上是我的理解,謝謝!
2017-08-01
兩個(gè)字符之間的字符串或數(shù)字
2017-08-01
.點(diǎn) ?匹配任何單個(gè)字符。例如正則表達(dá)式r.t匹配這些字符串:rat、rut、r t,但是不匹配root。
* 匹配0或多個(gè)正好在它之前的那個(gè)字符。例如正則表達(dá)式。*意味著能夠匹配任意數(shù)量的任何字符。
? 匹配0或1個(gè)正好在它之前的那個(gè)字符。注意:這個(gè)元字符不是所有的軟件都支持的。