Q: Нужна помощь в составлении регулярки на PHP В HTML тексте имеется запись:

redirect('Some value','Some value 2');

Нужно получить 'Some value' и 'Some value 2' в две переменные. Удалось получить только строку в виде 'Some value','Some value 2'. Заранее спасибо за помощь.

A: Вот как вы получили строку вида 'Some value','Some value 2' - она хранится в переменной, ниже распишу что к чему:
<?php

    // Получение в переменную $string = "'Some value','Some value 2'"

    $string = str_replace("'", "", $string);  // Учитывая что вы получили строку с кавычками ''
    $values = explode(',', $string);



A: если строка именно такая и точно есть два значения в одинарных кавычках, то есть если оно из них пустое, то должно быть '', то вот регулярка, которая просто выдает массив значений заключенных к одинарные кавычки
<?php
$string = "redirect('Some value','Some value 2');";
$pattern = '/\'.*?\'/';
preg_match_all($pattern, $string, $arr);


//результаты
echo $arr[0][0] . "\n";
echo $arr[0][1];

//выводит
// 'Some value'
// 'Some value 2'


A: Если сделать допущение, что внутри кавычек нет других кавычек, то самый простой вариант:
preg_match(
    "/redirect\('(?<val1>.*?)','(?<val2>.*?)'\);/",
    "redirect('Some value','Some value 2');",
    $matches
);
var_dump($matches['val1']);
var_dump($matches['val2']);

В результате:
string(10) "Some value"
string(12) "Some value 2"


A: Можно дальше и не регулярным выражением:
$string = my_get_string_from_incoming_html("... redirect('Some value','Some value 2'); ...");
$strings = explode(",", $string);

