在正则表达式中重用字符类

Joe*_*hel 5 regex hardcoded character-class

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

例子

有没有办法缩短以下内容:

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

Cas*_*yte 1

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

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

[acegikmoqstz@#&](?:.*[acegikmoqstz@#&]){2}
Run Code Online (Sandbox Code Playgroud)

但仅此而已,在 java 中你不能引用命名子模式。

使用 PHP,您可以做到这一点:

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