たとえば、指定された文字列はabcwhateverdefwhatever34567whatever012
、 match のように順番に並んでいるグループに一致させる方法はabc, def, 34567,012
?
私が今持っている正規表現(.)\1{2,}
は同じ文字に一致しますが、順番には一致しません
たとえば、指定された文字列はabcwhateverdefwhatever34567whatever012
、 match のように順番に並んでいるグループに一致させる方法はabc, def, 34567,012
?
私が今持っている正規表現(.)\1{2,}
は同じ文字に一致しますが、順番には一致しません
まだ PHP コードを探している場合。
function getSequence($str) {
$prev = 0; $next = 0; $length = strlen($str);
$temp = "";
for($i = 0; $i < $length; $i++) {
$next = ord($str[$i]);
if ($next == $prev + 1) {
$temp .= $str[$i];
} else {
if (strlen($temp) > 1) $result[] = $temp;
$temp = $str[$i];
}
$prev = $next;
}
if (strlen($temp) > 1) $result[] = $temp;
return $result;
}
$str = "abcwhateverdefwhatever34567whatever012";
print_r(getSequence($str));