$s = "bla..bla";
$s =~ s/([^%])\./$1/g;
Я думаю, он должен заменить все вхождения .
, что не является после %
с символом, который находится перед .
.Как заменить все вхождения определенных символов их предшественниками?
Но $s
: bla.bla
, но должно быть blabla
. В чем проблема? Я знаю, что могу использовать кванторы, но мне нужно сделать это так.
Какой результат вы ожидаете? –
Я ожидаю, что blabla – Krab
На самом деле, нет, вам это не нужно (нужно делать это таким образом). Поскольку буквальная точка не является процентом, мы все готовы знать, что любой поток точек, которым предшествует символ, который не является процентом, мы можем уничтожить. Если так получилось, что у нас есть «% ...', тогда двигатель re с радостью сохранит точку, следующую за процентом, считая ее несимметричным символом, предшествующим строке точек, и удалит остальные. – Axeman