5

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

例子

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

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

4

1 回答 1

1

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

使用 Java,您可以这样做:

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

但这就是全部,使用 java 你不能引用命名的子模式。

使用 PHP,您可以这样做:

(?(DEFINE)(?<a>[acegikmoqstz@#&]))\g<a>(?:.*\g<a>){2}
于 2013-11-20T23:58:09.067 回答