如何在字符串和 | 之间获取数据

我有以下字符串:

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);


猛跑小猪
浏览 99回答 1
1回答

繁花不似锦

笔记: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];}
打开App,查看更多内容
随时随地看视频慕课网APP