我有以下字符串:Name=Joe|LastName=Doe|City=NY|Country=US|Currency=$|Phone=0123456789|Adress=null例如,我想檢索電話號碼0123456789這是我所做的:Phone=(.*)|https://regex101.com/r/4nlrsW/2我想在 PHP 中使用它:preg_match('Phone=(.*)|', $mystring, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
1 回答
繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
筆記:
preg_match正則表達式字符串文字應包括正則表達式分隔符,例如/要從匹配中獲取子字符串,您至少應該使用捕獲組,或使用
\K運算符|是一個特殊的正則表達式元字符,如果在字符類之外使用,應該進行轉義.*是一個貪心模式,匹配除換行字符以外的盡可能多的字符。
你可以使用
'~Phone=\K[^|]+~'
Phone=- 文字字符串\K- 匹配重置運算符丟棄匹配內存緩沖區中到目前為止匹配的所有文本[^|]+- 除了|(|不必在字符類中轉義) 之外的 1 個或多個字符。
$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 關注
- 132 瀏覽
添加回答
舉報
0/150
提交
取消
