php - preg_match 转储空数组

标签 php regex

鉴于我有 url https://website.com/test/demo/success.php?token=-abc123- 我想获取值 abc123。不知何故,我在 preg_match 上得到了两个空字符串。

$url = 'https://website.com/test/demo/success.php?token=-abc123-';
preg_match('-(.*?)-', $url, $match);
var_dump($match);

输出:array(2) { [0]=> string(0) ""[1]=> string(0) ""}

我在这里做错了什么?

最佳答案

您需要使用正则表达式分隔符:

preg_match('/-(.*?)-/', $url, $match);
var_dump($match);

或更好:

preg_match('/-([^-]*)-/', $url, $match);
var_dump($match);

关于php - preg_match 转储空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21954857/

相关文章:

php - SilverStripe - 使用函数获取页面的表单值

php - 保护网站/数据库的最新方法

基于字符串出现的 PHP 自定义排序函数?

SQL:将 SELECT 输出提供给 LIKE

php - Laravel Log useFiles 方法使日志写入多个文件

php - 根据设定的价格和月份计算日期之间的价格

Javascript - 正则表达式坐标

c# - 递归正则表达式以匹配键和名称

python - 使用 strip() 清理字符串

java - 如何从一行中过滤掉一些字符串?