我有以下字符串: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 关注
- 98 浏览
添加回答
举报
0/150
提交
取消