Regex 在正则表达式中重用字符类
为了使正则表达式更简短,是否有一种简写方法来引用同一正则表达式中较早出现的字符类 示例 有没有办法缩短以下时间:Regex 在正则表达式中重用字符类,regex,hardcoded,character-class,Regex,Hardcoded,Character Class,为了使正则表达式更简短,是否有一种简写方法来引用同一正则表达式中较早出现的字符类 示例 有没有办法缩短以下时间: [acegikmoqstz@#和].[acegikmoqstz@#和].[acegikmoqstz@#和]请记住,正则表达式功能取决于所使用的语言 使用Java,您可以执行以下操作: [acegikmoqstz@#&](?:.*[acegikmoqstz@#&]){2} 但仅此而已,对于java,您不能引用命名子模式 使用PHP,您可以做到这一点: (?(DEFIN
[acegikmoqstz@#和].[acegikmoqstz@#和].[acegikmoqstz@#和]
请记住,正则表达式功能取决于所使用的语言
使用Java,您可以执行以下操作:
[acegikmoqstz@#&](?:.*[acegikmoqstz@#&]){2}
但仅此而已,对于java,您不能引用命名子模式
使用PHP,您可以做到这一点:
(?(DEFINE)(?<a>[acegikmoqstz@#&]))\g<a>(?:.*\g<a>){2}
(?(定义)(?[acegikmoqstz@#&])\g(?:.*\g){2}
Hmm。。。您使用的是什么编程语言?使用变量动态创建正则表达式可能是最佳选择。例如,在Python中,您可以执行cc=r'[acegikmoqstz@#&];regex=r'{0}.*{0}.*{0}'。format(cc)
。在大多数编程语言中,没有;但是在regexp是字符串的语言中,您可以通过使用先前定义的strings.argh构建regexp来获得相同的效果,就像@F.J刚刚说的:-)@NoBrainer Java一样,但我也很感兴趣的是,这是否只能通过regex实现