@john_notebook

Как найти слово в строке, и вывести его??

есть например строка
param0_test1_param1_affiliatewire_%nameID%_test2_param2_param3

как мне в ней найти вхождение affiliatewire_%nameID% где %nameID% всегда разное слово
и вывести %nameID%
affiliatewire_ <- встречается всегда!
примеры строк:
param0_test1_param1_affiliatewire_name1_test2_param2_param3
param0_test1_param1_affiliatewire_name_test2_param2_param3
param0_test1_param1_affiliatewire_trollolo_test2_param2_param3


Спасибо!!
  • Вопрос задан
  • 271 просмотр
Решения вопроса 3
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
affiliatewire_(.*?)_

<?php

$re = "/affiliatewire_(.*?)_/";
$str = "param0_test1_param1_affiliatewire_name1_test2_param2_param3
param0_test1_param1_affiliatewire_name_test2_param2_param3
param0_test1_param1_affiliatewire_trollolo_test2_param2_param3";

preg_match_all($re, $str, $matches);

print_r($matches);
?>


Array
(
    [0] => Array
        (
            [0] => affiliatewire_name1_
            [1] => affiliatewire_name_
            [2] => affiliatewire_trollolo_
        )

    [1] => Array
        (
            [0] => name1
            [1] => name
            [2] => trollolo
        )

)
Ответ написан
Возможно это поможет:
preg_match("/(?<=affiliatewire_)([A-Za-z\d]*)/", $matches);
echo $matches[0]; // тут ваш "nameId", если он содержит только буквы и цифры.
Ответ написан
Комментировать
@john_notebook Автор вопроса
Решение:

<?php

$re = "/(?<=affiliatewire_)[^_\r\n]++/"; 
$str = "param0_test1_param1_affiliatewire_name1_test2_param2_param3
param0_test1_param1_affiliatewire_name_test2_param2_param3
param0_test1_param1_affiliatewire_trollolo_test2_param2_param3"; 

preg_match_all($re, $str, $matches);

print_r($matches);
?>

Результат:

Array
(
    [0] => Array
        (
            [0] => name1
            [1] => name
            [2] => trollolo
        )

)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev
software engineer
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы