1

我有以下固定字符串。

edbe801bf92fe7b770f72df2d722df0a

我需要得到2df2d第四个之后7和最后一个之前的部分7

我尝试匹配

[a-z0-9]*7[a-z0-9]*77[a-z0-9]*7(.*)

但它得到了字符串的错误部分

谢谢。

4

1 回答 1

1

实际上,如果您7在捕获组之后添加另一个模式,您的模式将匹配。

.... (.*)7

但是为了可读性和让你头疼,我会简化这个。

(?:[^7]*7){4}([^7]*)

我在这里使用了一个非捕获组来?:对多个匹配的表达式进行分组,但不将其保存为字符串的匹配/捕获部分。

正则表达式解释:

(?:        group, but do not capture (4 times):
 [^7]*     any character except: '7' (0 or more times)
   7       match '7'
){4}       end of grouping
(          group and capture to \1:
 [^7]*     any character except: '7' (0 or more times)
)          end of \1

观看现场演示

于 2013-10-18T03:17:44.920 回答