PHP preg_match 获取最后一项

标签 php preg-match

我有一个包含项目列表的 PHP 字符串,我想获取最后一个。

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

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

我希望 Matches['last'] 包含“Third”,但它不起作用。相反,我让 Matches[0] 包含完整的字符串,没有其他内容。 我做错了什么?

请不要有变通办法,我可以自己做,但我真的很想将它与 preg_match 一起使用

最佳答案

你有这个:

'@^.*|(?P<last>.+)$@'
     ^

...但我猜你正在寻找一个文字 |:

'@^.*\|(?P<last>.+)$@'
     ^^

关于PHP preg_match 获取最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14122169/

相关文章:

javascript - 在 Google map 上使用本地 MySQL 数据库和 PHP 和 JavaScript

php - 将重复项合并到一行并使用 php 求和

php - 查询 Laravel 查询生成器

php - 正则表达式只验证自然数?

不同用户/ session 之间的php共享变量

javascript - 为什么在按 Enter 或使用条形码扫描仪时我的表单被提交两次?

php - 替换 PHP 中标记之间的许多代码行

php - PHP 正则表达式中的 ^$ 和 $^ 是否相同?

php - 在 php 中使用 preg_match 验证密码

php - 如何仅返回带有 preg_match 或 preg_match_all 的命名组?