如何为此创建一个REGex ---> 7到12个字符长,第4个,第6个和(如果存在)第10个是其中之一:1,5,9,A,S,K [关闭]

问题描述 投票:0回答:2

我想使用这个来验证业务防火墙 - > 7到12个字符长,第4个,第6个和(如果存在)第10个是其中之一:1,5,9,A,S,K

$ {$ -12} $

regex
2个回答
3
投票

你可以使用这个正则表达式,

^.{3}[159ASK].[159ASK].(?:..[159ASK].{0,2}|.{0,2})$

^开头的字符串然后允许任何三个字符与.{3}然后你想要,第四个字符是[159ASK]中的任何人然后.代表任何字符作为第5个字符然后第六个字符再次由[159ASK]代表然后.允许任何字符作为第七个字符,最后(?:..[159ASK].{0,2}|.{0,2})这代表两个字符中的任何一个,或者如果它们至少有10个字符,则第10个字符再次来自[159ASK]


0
投票

你可以使用@Pushpesh提供的解决方案,但如果你想进一步减少解决方案的长度,你可以使用

^.{3}([159ASK].)\1(?:..\1{0,2}|.{0,2})$

其中\ 1是后向引用,表示第一个捕获组的值为[159ASK]。 。

?:表示非捕获组

你可以进一步阅读

Capturing/Non Capturing Group and Back Reference

© www.soinside.com 2019 - 2024. All rights reserved.