为了使正则表达式更简洁,是否有一种简短的方法来引用同一正则表达式中较早出现的字符类?
示例
有没有办法缩短以下内容:
[acegikmoqstz@#&].*[acegikmoqstz@#&].*[acegikmoqstz@#&]
答案 0 :(得分:1)
请记住,正则表达式功能取决于所使用的语言。
使用Java,您可以这样做:
[acegikmoqstz@#&](?:.*[acegikmoqstz@#&]){2}
但这就是全部,使用java你不能引用命名的子模式。
使用PHP,您可以这样做:
(?(DEFINE)(?<a>[acegikmoqstz@#&]))\g<a>(?:.*\g<a>){2}