我试图在php / javascript中使用正则表达式匹配有序字母。
我有一个4个字母的单词,其中前2个字母应该是有序的,接下来的两个字母应该是BCEF
的顺序。我希望使用正则表达式进行匹配。
但是下面的正则表达式也匹配订单CBFE
请提供以下表达式中缺少的内容以匹配字母顺序。谢谢。
[A-H]{2}[D-M]{2}
答案 0 :(得分:1)
我不会使用正则表达式而是使用php代码:
$s = "BCEF";
$arr = str_split($s);
if ($arr[0] <= $arr[1] && $arr[2] <= $arr[3]) {
// Your string matched
}
答案 1 :(得分:0)
这是一个使用正则表达式的解决方案(但主要是为了说明它是如何愚蠢)。
(?:A[B-H]|B[C-H]|B[C-H]|D[E-H]|E[FGH]|F[GH]|GH)(?:D[E-M]|E[F-M]|F[G-M]|G[H-M]|H[I-M]|I[J-M]|J[KLM]|LM)
它有两个(非捕获)组彼此跟随 - 每个字母对一个。
他们测试所有可能的开始字符 em>(A
到G
为第一对,D
到L
为第二对后跟任何允许的后续字符,使用交替。