我正在尝试使用preg_match
以下正则表达式匹配多个字符串:
#^/test/(.+?)(\/.+^/?)?$#
以下字符串上的结果如下
匹配(应该匹配)
preg_match('#^/test/(.+?)(\/.+?)?$#', '/test/segment'); // true
preg_match('#^/test/(.+?)(\/.+?)?$#', '/test/segment/another-segment'); // true
不匹配(不应该匹配)
preg_match('#^/test/(.+?)(\/.+?)?$#', '/test'); // false
匹配(不应该匹配)
preg_match('#^/test/(.+?)(\/.+?)?$#', '/test/segment/another-segment/yet-another/segment'); // true
谁能告诉我如何使最后一个失败?分解正则表达式,本质上它应该匹配一个文字/test
,后跟一个 required/something
和一个可选/something
,但在任何下一次出现/something
.
希望这是有道理的。