【发布时间】:2016-09-30 15:56:52
【问题描述】:
我在一个路由系统上工作,我想允许自定义正则表达式模式。 我的问题是如何检测正则表达式是否包含捕获组?
例如,[0-9]+ 模式会起作用,因为它不包含捕获组。 ([0-9]+) 模式不起作用。
它试图通过( 和) 字符掩码来ltrim 和rtrim 模式,这适用于以([A-Za-z]+) 和([0-9]+) 等捕获组开头的模式。但是对于在其他地方包含捕获组的模式,这是行不通的。那么我如何检查模式是否包含捕获组?
【问题讨论】:
-
为什么不允许用户使用捕获组?他可以潜在地使用它们来参考之前的比赛。例如
([ab])c\1将匹配aca或bcb但不匹配acb或bca -
你的目标语言是什么?
-
抱歉忘了提,php
标签: php regex regex-group capturing-group