正则表达式以匹配序列模式

时间:2014-04-12 18:47:07

标签: regex perl

我正在尝试使用reg ex从驱动器中刻录jpg文件的十六进制内容。

有没有办法可以搜索以" ffd8"开头的值?并以" ffd9"结束(除了重复的#34; ffd8"序列之外,允许介于两者之间的任何东西?

例如,这将匹配: 的 ffd80123456789abcdffd9

虽然它只匹配最后的配对" ffd8"字符通过" ffd9":

ffd8zxywffd80123456789abcdffd9 ** - >忽略第一个ffd8zxyw并匹配ffd80123456789abcdffd9

正则表达式有没有办法做到这一点?

谢谢

2 个答案:

答案 0 :(得分:5)

Perl正则表达式ffd8(?:(?!ffd8).)*ffd9只匹配字符串ffd8zxywffd80123456789abcdffd9 ffd80123456789abcdffd9

答案 1 :(得分:1)

您可以在表达式的开头使用贪心匹配:

.*(ffd8(.*)ffd9)

Regular expression visualization

您可以在work here看到它。请注意,我没有使用U修饰符。