php - preg_match_all 用于特殊字符 [?]
问题描述
我有一个网址:
https://my.site.com/u/0/ac?export=download&confirm=45vy&id=qNhdhk1jejhXLexLpY3RiDY2oamis">D
我想使用 preg_match_all 匹配它。我的正则表达式是:
preg_match_all('/(https:\/\/my\.site\.com\/[u]\/[0]\/(ac)\/(?)\/.*\">D)/', $input_lines, $output_array);
但我无法匹配?
上面代码中的特殊字符。我尝试使用(?)
. 但它不匹配。我知道这可能是一个蹩脚的问题,但如果有人可以帮助我匹配?
或在 preg_match_all 中转义?
,那将很有帮助。
解决方案
我只是注意到在 ac 之后没有/
链接,但是您在正则表达式中添加了它,所以只需尝试删除它或使用下面的代码,它的工作和测试。
<?php
$input_lines = 'https://my.site.com/u/0/ac?export=download&confirm=45vy&id=qNhdhk1jejhXLexLpY3RiDY2oamis">D';
preg_match_all('/(https:\/\/my\.site\.com\/[u]\/[0]\/(ac)(\?).*\">D)/', $input_lines, $output_array);
var_dump($output_array);
这是输出 - https://prnt.sc/weq86u
或者,如果有可能ac/?
发生之后,那么您可以尝试/
在正则表达式中使用作为可选参数
<?php
$input_lines = 'https://my.site.com/u/0/ac?export=download&confirm=45vy&id=qNhdhk1jejhXLexLpY3RiDY2oamis">D';
preg_match_all('/(https:\/\/my\.site\.com\/[u]\/[0]\/(ac)\/?(\?).*\">D)/', $input_lines, $output_array);
var_dump($output_array);
它将匹配带有或不带有/
https://prnt.sc/weqbae的两个链接
推荐阅读
- java - 如何解决 org.springframework.data.mapping.PropertyReferenceException: No property existsByLastName found for type Customer
- python - KeyError: 'ENV' 使用 python 读取 os 环境时
- javascript - 如何使用类 javascript 使线条跟随鼠标事件 arctanget
- flutter - 简单代码以这个错误结束:Gradle task assembleDebug failed with exit code 1
- batch-file - 我想在批处理文件和 yaml 文件中设置变量路径
- python - 为什么在带有“下一个”和“上一个”按钮的音乐播放器中使用双向链表,而使用列表更简单?
- google-cloud-functions - Cloud Vision 和 Cloud Functions 返回空响应
- jenkins - 从 jenkins 管道启动 appium 服务器
- python - 我如何在多个文本文件中搜索模式并写入新的多个文本文件
- android - 如何在没有 WebXrviewer 的情况下在 iPhone 上进行 AR 开发