为了使正则表达式更简短,是否有一种简便的方法来引用同一正则表达式中较早出现的字符类?



有没有一种方法可以缩短以下时间:

[acegikmoqstz@#&].*[acegikmoqstz@#&].*[acegikmoqstz@#&]

最佳答案

请记住,正则表达式功能取决于所使用的语言。

使用Java,您可以执行以下操作:

[acegikmoqstz@#&](?:.*[acegikmoqstz@#&]){2}


但这就是全部,对于Java,您不能引用命名子模式。

使用PHP,您可以执行以下操作:

(?(DEFINE)(?<a>[acegikmoqstz@#&]))\g<a>(?:.*\g<a>){2}

10-06 03:21