如何从帧组中提取帧(子串)

时间:2014-09-11 09:46:34

标签: regex

我的长帧像这样:

CCadad6876adDDCCdashajdhakdhadhDDCCsfjskfjsklfjDDCClskfjlsdfjDD

这些框架在CCDD之间分组。所以上面的例子展示了三个框架。

CCadad6876adDD
CCdashajdhakdhadhDD
CCsfjskfjsklfjDD
CClskfjlsdfjDD

我想将这个长字符串中的帧提取到上面提到的表单中。为此,我使用了表达式:

CC[a-zA-Z0-9]+DD

希望在字符串中捕获第一帧。

但是,不是预期CCadad6876adDD,而是整个字符串匹配。该匹配在CCadad6876adDDCCdashajdhakdhadhDDCCsfjskfjsklfjDDCClskfjlsdfjDD开始时正确,并以CCDD结束,但如何坚持正则表达式专注于第一帧?。

在RegEx中我应该修改什么来捕获第一帧?

1 个答案:

答案 0 :(得分:1)

您错过了指定编程语言,这里有一个PHP示例:

$string = <<<EOF 
CCadad6876adDD
CCdashajdhakdhadhDD
CCsfjskfjsklfjDD
CClskfjlsdfjDD
EOF;

preg_match_all('/CC.*?DD/', $string, $matches);
var_dump($matches);

输出:

array(1) {
  [0]=>
  array(4) {
    [0]=>
    string(14) "CCadad6876adDD"
    [1]=>
    string(19) "CCdashajdhakdhadhDD"
    [2]=>
    string(16) "CCsfjskfjsklfjDD"
    [3]=>
    string(14) "CClskfjlsdfjDD"
  }
}