в php:
<?php
$in = "\"Bob\",\"1\",\"Mary\",\"2\"";
$out = preg_replace('/"(\d)"/',"$1",$in);
echo $out;
?>
в JavaScript:
var $in = "\"Bob\",\"1\",\"Mary\",\"2\"";
var $out = $in.replace(/"(\d)"/g,"$1");
alert($out);
мое лучшее предположение в R: (я не программист R)
in <- "\"Bob\",\"1\",\"Mary\",\"2\""
out <- sub("\"([:digit:])\"","\\1",in)
print(out)
... здесь \\1
эквивалентно $1
и [:digit:]
эквивалентно \d
для объяснения регулярного выражения
php preg_replace()
функция принимает регулярное выражение в качестве первого параметра в форме строки, значение замены в качестве второго параметра в форме строки и источник в качестве третьего параметра в форме строки. и возвращает измененную строку после замены регулярного выражения.
javascript .replace()
метод работает с исходной строкой, принимает регулярное выражение в качестве первого параметра и замещающую строку в качестве второго параметра. Возвращает измененную строку после замены регулярного выражения.
В этом примере регулярное выражение отделяется (начинается и заканчивается) косыми чертами (/.../
) и соответствует любой цифре (\d
), взятой в скобки ("(\d)"
) и заключенной в кавычки ("(\d)"
). В javascript флаг g
используется, чтобы сделать замены глобальными (повторить для всех вхождений). Захваченная цифра (захваченная, потому что она заключена в скобки) затем заменяется ссылкой $1
, означающей первую захваченную группу. $0
соответствует всей совпадающей строке. $2
будет соответствовать второй захваченной группе - но в этом регулярном выражении нет ни одного. Все, что содержится в скобках в регулярном выражении, является захваченной группой, и на нее можно ссылаться при замене по ее индексу через $n
, где n - это индекс. Проще говоря, регулярное выражение заменяет все вхождения цифры, заключенной в кавычки, только цифрой.