为了使正则表达式更简短,是否有一种简便的方法来引用同一正则表达式中较早出现的字符类?
例
有没有一种方法可以缩短以下时间:[acegikmoqstz@#&].*[acegikmoqstz@#&].*[acegikmoqstz@#&]
最佳答案
请记住,正则表达式功能取决于所使用的语言。
使用Java,您可以执行以下操作:
[acegikmoqstz@#&](?:.*[acegikmoqstz@#&]){2}
但这就是全部,对于Java,您不能引用命名子模式。
使用PHP,您可以执行以下操作:
(?(DEFINE)(?<a>[acegikmoqstz@#&]))\g<a>(?:.*\g<a>){2}