У меня есть этот текст:Быстрый регулярное выражение Grep/Perl/PHP
2015-03-11 10:15 - anonymous logged in to [127.0.0.1] on account 1DEYKqtPtAEt5hDfiAlz7SdFEGUSPguxGu using key uembzzQdgFHq9k0UJfEi4Dnkvc7n3N5tWVNRQmKfZpeJPnyzKVzKSVVsvLGL6bY 0.2379845 BTC were transferred to address 1cRa5v0Nxu9ABkkzlTv4dzsyRf0hOkg27N using key 1zM9nBd1PNu1FF7qKr1t9Y4m0TawPa3ZQJ1LrlvtViCiB2aFjgn8BIHWG2VHjJvV
и я пытаюсь извлечь псевдо счет BTC и соответствующий ключ. Текст не является регулярным, как журналы apache, поэтому у вас может быть очень длинная строка с 5 или 10 адресами или одна строка с той же информацией. Теперь, как я могу сопоставить псевдо-BTC-учетную запись и ее соответствующий ключ от «зарегистрированной» и «переданной» части, даже если в одной строке есть много вхождений?
Я попытался это:
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$parsed = get_string_between($fullstring, "account", "using");
который получает мне адрес, но не соответствующий ключ. Я хотел бы проанализировать текст, используя grep, perl или php. все работает легче. Я пытался с php, поскольку я, по крайней мере, знаком с языком.
любые идеи? Я ценю всю вашу помощь
что ваш ожидаемый выход? –
И, пожалуйста, покажите нам больше образцов. Если они меняются, то решение для примера в вашем вопросе, скорее всего, не будет применяться к другим входам. –
@AvinashRaj мой ожидаемый выход будет адресом и «ключом», например. 1DEYKqtPtAEt5hDfiAlz7SdFEGUSPguxGu uembzzQdgFHq9k0UJfEi4Dnkvc7n3N5tWVNRQmKfZpeJPnyzKVzKSVVsvLGL6bY предпочтительно в массиве (PHP) – wiZZmnma