通过正则表达式标志在Phalcon micro app中路由

时间:2018-02-02 14:46:37

标签: php regex phalcon phalcon-routing

我正在尝试在Phalcon Micro App中定义路由,但无法弄清楚如何将全局标志传递给正则表达式。这是我的路线

/api/v1/product/detail/{sku:([\w\d]+-?)*[\w\d]*}

期望这两者匹配,但是后者需要全局修饰符匹配。

  • 8Z-WEXN-CG0H
  • 025-3bags

如何在正则表达式中指定标志?我没有在文档中看到这个。

1 个答案:

答案 0 :(得分:3)

只要您不想在第一次匹配时停止,就会设置全局修改器,因为您一次不需要g修饰符就有一个匹配值。

我们来举个例子吧。假设您当前的输入字符串是:

/api/v1/product/detail/8Z-WEXN-CG0H
/api/v1/product/detail/025-3bags

然后你的正则表达式在第一次匹配时停止,因为没有应用g但是如果你的输入字符串是其中之一:

/api/v1/product/detail/8Z-WEXN-CG0H
/api/v1/product/detail/025-3bags

它的工作原理使您根本不需要g。我建议你将你的正则表达式修改为这个简化版:

\w+(?:-\w+)*

由于\w包含\d作为匹配的一部分。