如何验证正则表达式以确保它与php中的另一个正则表达式不匹配


How to validate a regex to ensure that it does NOT match another regex in php?

我有一种情况,允许最终用户输入任意regex表达式(php-pcre(。例如:^[a-zA-Z]foo[0-9]{3}$

我需要"验证"这两个正则表达式:

  1. 准确性(执行时不会造成错误(和
  2. 以确保正则表达式不允许匹配与以下模式匹配的字符串:^[a-zA-Z0-9_'-]$

什么是执行上面两个验证的好方法(最好是在php中(?

注意:我不能在运行时简单地使用两个正则表达式来匹配每个字符串。

这是不可能的。PCRE是一种图灵完备的语言,所以从本质上讲,你试图解决停顿问题。唯一的方法就是简单地运行PCRE并检查错误。