Joe*_*hel 5 regex hardcoded character-class
为了使正则表达式更加简短,是否有一种简写方法来引用同一正则表达式中较早出现的字符类?
例子
有没有办法缩短以下内容:
[acegikmoqstz@#&].*[acegikmoqstz@#&].*[acegikmoqstz@#&]
请记住,正则表达式功能取决于所使用的语言。
使用 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)