PHP preg_match获取最后一项

car*_*reo 3 php preg-match

我有一个包含项目列表的PHP字符串,我想得到最后一个.

现实情况要复杂得多,但归结为:

$Line = 'First|Second|Third';
if ( preg_match( '@^.*|(?P<last>.+)$@', $Line, $Matches ) > 0 )
{
    print_r($Matches);
}
Run Code Online (Sandbox Code Playgroud)

我希望Matches['last']包含'第三',但它不起作用.相反,我得到Matches [0]来包含完整的字符串而没有别的.我究竟做错了什么?

请不要解决,我可以自己做,但我真的希望这与preg_match一起工作

Álv*_*lez 6

你有这个:

'@^.*|(?P<last>.+)$@'
     ^
Run Code Online (Sandbox Code Playgroud)

...但我想你正在寻找文字 |:

'@^.*\|(?P<last>.+)$@'
     ^^
Run Code Online (Sandbox Code Playgroud)