我与我想达到的目标非常接近。
我有这个:
'/create-group/([A-Za-z0-9\-\_]+)(?:/([A-Za-z0-9\-\_]+))?(?:(\?|&)(groupid|copyofgroup|ref)=([A-Za-z0-9\-\_]+))?'
它允许我限制输入和访问的URI,例如:
/create-group/123/456?groupid=789
在正则表达式的最后一位,我允许3个参数(groupid,copyofgroup和ref)。
这一切都很好,但我无法找到让preg_match验证这3个参数的无限数量的方法。现在,我只限于一个参数实例。
我希望我的preg_match()接受:
/create-group/123/456?groupid=789&ref=101112©ofgroup=789
我尝试了*
和+
之类的乘数,但无济于事。
谢谢!
答案 0 :(得分:1)
您最后可以添加{0,3}而不是“?”:
/创建组/([A-ZA-Z0-9 -_] +):((/([A-ZA-Z0-9 -_] +)):???(\ |&安培)(GROUPID | copyofgroup | REF)=([A-ZA-Z0-9 -_] +)){0,3}
我在这里试过: https://regex101.com/
答案 1 :(得分:0)
找到解决方案:
'/create-group/([A-Za-z0-9\-\_]+)(?:/([A-Za-z0-9\-\_]+))?(?:((\?|&)(groupid|copyofgroup|ref)=([A-Za-z0-9\-\_]+))+)?'