С тех пор я пытаюсь найти правильное регулярное выражение. Скажем, у меня есть это:preg_match правильное регулярное выражение
$string = 'a=a.split("")';
и
$string = 'a=Ik(a,66)';
Что я хочу получить как результат:
[1] => a
[2] => a
[3] => split
[4] => ""
и второй:
[1] => a
[2] => IK
[3] => a,66
Я пробовал:
preg_match('#(.+)=(.+).(.+)[(](.+)[)]#', $string, $matches);
, но это выводит:
Array
(
[0] => a=a.split("")
[1] => a
[2] => a.spl
[3] => t
[4] => ""
)
Почему я хочу этого? Я хочу преобразовать javascript в PHP. Например:
function Hk(a) {
a = a.split("");
a = a.slice(1);
a = a.reverse();
a = Ik(a, 66);
a = a.slice(2);
a = a.reverse();
a = Ik(a, 12);
return a.join("")
}
function Ik(a, b) {
var c = a[0];
a[0] = a[b % a.length];
a[b] = c;
return a
}
# Edit: Что я хочу, чтобы преобразовать его в PHP код и выводе его. Я не хочу его исполнять.
Например, выше яваскрипта код должен стал чем-то вроде этого:
Первая функция:
$a = str_split($a);
$a = array_slice($a, 1);
$a = array_reverse($a);
$a = self::Ik($a,66);
$a = array_slice($a, 2);
$a = array_reverse($a);
$a = self::Ik($a,12);
return implode("", $a);
вторая функция:
$c = $a[0];
$a[0] = $a[$b%count($a)];
$a[$b] = $c;
return $a;
function
сама часть не Тон задает. Мне нужна только логика в самой функции.
Так вы ж ant lex/разбор кода в списке токенов? –
Что я в основном хочу, это преобразовать код javascript в php. – Michael
Вы смотрите на огромное усилие, вы не можете сделать это только с одним выражением. Лексер либо построен с использованием генератора лексера и нескольких регулярных выражений, либо вы можете создавать свои собственные, но это очень сложно. Я уже пробовал создавать php-lexer, но еще не закончен, и у меня есть несколько часов кодирования. –