dqwh1201 2017-03-18 12:59
浏览 59
已采纳

preg_match函数不接受符号“/”

I have the following code:

  $URI = "controller/method/parms";
  $pattern = "a-z0-9_-/";
  echo preg_match("/^[". $pattern ."]+$/i", $URI);

Because of this / symbol, the operation fails and appears this error:
Warning: preg_match(): Unknown modifier ']'. but if I remove that symbol, everything will work correctly.

  • 写回答

1条回答 默认 最新

  • duanqing3026 2017-03-18 13:00
    关注

    Escape the slash and move the dash at the end of the character class:

    $pattern = "a-z0-9_\/-";
    preg_match("/^[". $pattern ."]+$/i", $URI);
    

    Note: preg_quote doesn't work in this case because it escapes the dash, I don't know why.

    You could also use another delimiter:

    $pattern = "a-z0-9_/-";
    preg_match("~^[". $pattern ."]+$~i", $URI);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解