我有以下字符串:Name=Joe|LastName=Doe|City=NY|Country=US|Currency=$|Phone=0123456789|Adress=null例如,我想檢索電話號(hào)碼0123456789這是我所做的:Phone=(.*)|https://regex101.com/r/4nlrsW/2我想在 PHP 中使用它:preg_match('Phone=(.*)|', $mystring, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
1 回答

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
筆記:
preg_match
正則表達(dá)式字符串文字應(yīng)包括正則表達(dá)式分隔符,例如/
要從匹配中獲取子字符串,您至少應(yīng)該使用捕獲組,或使用
\K
運(yùn)算符|
是一個(gè)特殊的正則表達(dá)式元字符,如果在字符類之外使用,應(yīng)該進(jìn)行轉(zhuǎn)義.*
是一個(gè)貪心模式,匹配除換行字符以外的盡可能多的字符。
你可以使用
'~Phone=\K[^|]+~'
Phone=
- 文字字符串\K
- 匹配重置運(yùn)算符丟棄匹配內(nèi)存緩沖區(qū)中到目前為止匹配的所有文本[^|]+
- 除了|
(|
不必在字符類中轉(zhuǎn)義) 之外的 1 個(gè)或多個(gè)字符。
$text='Name=Joe|LastName=Doe|City=NY|Country=US|Currency=$|Phone=0123456789|Adress=null';
if (preg_match('~Phone=\K[^|]+~', $text, $match)) {
? ? echo $match[0];
}
- 1 回答
- 0 關(guān)注
- 117 瀏覽
添加回答
舉報(bào)
0/150
提交
取消