Ваш конкретный пример SED - это, очевидно, 2 регулярных выражения: 1 заменяет запятую, а одно - технически захватывает 9-значные непрерывные числа.
Первая половина вашей строки SED лучше всего подходит с функцией preg_replace()
.
//`sed s/regex/replace_value/flags`
preg_replace('/regex/flags', 'replace_value', $input);
Вторая половина вашей строки SED будет preg_match_all()
:
//`sed ...;s/regex/\1/flags`
$matches_array = array();
preg_match_all('/regex/flags', $input, &$matches_array);
Итак, ваш конкретный код будет выглядеть примерно так:
<?php
$input = file_get_contents('uglynumbers.txt');
$input = preg_replace('/[, ]/m','', $input);
$matches = array();
//No need for the .* or groupings, just match all occurrences of [0-9]{9}
if( preg_match_all('/[0-9]{9}/m', $input, $matches) )
{
//...
var_dump($matches);
}
Похоже, g
- это модификатор SED, означающий соответствие всем строкам. preg_match_all()
уже должен позаботиться об этом модификаторе, но m
кажется подходящей заменой в соответствии с руководством по PCRE модификаторам .