php - php regex 获取特殊字符之间的关键字
问题描述
我在 PHP 中使用以下正则表达式来处理 URL 中的关键字
$url="https://example.com/search/node/KEYWORD1/loc=11";
$url="https://example.com/search/node/KEYWORD2";
$url="https://example.com/search/node/KEYWORD3/loc=9";
preg_match('search/node/\K\d+/', $url,$m);
$KEYWORD= $m[0];
$KEYWORD 返回所有 url。如何只返回 URL 中的 KEYWORDS?
感谢您的帮助
解决方案
您可以更新您的模式以匹配除空白字符或/
使用否定字符类之外的任何字符。您的模式目前仅匹配 1 位以上的数字。
请注意,如果要将/
用作分隔符,则必须将其添加到开头,并转义模式内的正斜杠。
$url="https://example.com/search/node/Star/loc=9";
preg_match('/search\/node\/\K[^\s\/]+/', $url,$m);
$KEYWORD= $m[0];
echo $KEYWORD;
输出
Star
如果您使用不同的分隔符,您的代码可能看起来像
preg_match('~search/node/\K[^\s/]+~', $url,$m);
推荐阅读
- ruby-on-rails - 带状充电的未定义变量“游戏”
- python - 无法抓取乐天金融数据
- ssl - 如何使用 cloudflare 使服务器上的 API 安全(HTTPS)
- for-loop - for 循环中的 golang 范围是否保证只评估一次?
- amazon-web-services - 使用 Route53 从一个域重定向到另一个域
- python - 无法完成 python 设置 - 导致问题的子进程文件
- html - 模态窗口不可滚动
- json - 未处理的异常:FormatException:意外字符(在字符 1 处)
- html - 仅图像网格列表
- rest - 如何从 url 下载文件并将其存储在 aws s3 存储桶中?