使用PHP中的正则表达式按顺序对字母进行排序

时间:2017-06-28 06:48:25

标签: javascript php jquery regex

我试图在php / javascript中使用正则表达式匹配有序字母。

我有一个4个字母的单词,其中前2个字母应该是有序的,接下来的两个字母应该是BCEF的顺序。我希望使用正则表达式进行匹配。

但是下面的正则表达式也匹配订单CBFE

请提供以下表达式中缺少的内容以匹配字母顺序。谢谢。

[A-H]{2}[D-M]{2}

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)

它有两个(非捕获)组彼此跟随 - 每个字母对一个。

他们测试所有可能的开始字符AG为第一对,DL为第二对后跟任何允许的后续字符,使用交替。

See it here at regex101