Я не знаю синтаксиса замены bash, но вам нужно следующее регулярное выражение:
/\*\*.*?==/
В PHP код будет:
$str = preg_replace('/\*\*.*?==/', '', $str);
Надеюсь, вы сможете перевести этов bash без проблем.
Объяснение:
Хитрость здесь в том, что .*?
.?
делает .*
ленивым, поэтому он будет начинаться с **
и будет соответствовать всему, пока не будет первый ==
, который он найдет.Без ?
, .*
был бы жадным и захватывал бы все между первым **
и последним ==
в документе.Так что если у вас есть что-то вроде этого:
**foo==bar **baz==quux **abc==xyz
... использование /\*\*.*?==/
в качестве вашего регулярного выражения даст вам bar quux xyz
, тогда как /\*\*.*==/
даст только xyz
.