PHP: Preg заменяет строку ничем

Я новичок в preg_replace() и пытался заставить это работать, но не смог, поэтому StackOverflow — мой последний шанс.

У меня есть строка с несколькими из них:

('pm_IDHERE', 'NameHere');">

Я хочу, чтобы его заменили ничем, поэтому для него потребуются 2 подстановочных знака для NameHere и pm_IDHERE.

Но я пробовал и сам потерпел неудачу, так что может кто-нибудь дать мне правильный код, пожалуйста, и спасибо :)


person Joseph    schedule 26.06.2010    source источник
comment
Можете показать, что не получилось? Почти всегда (для вас) будет лучше, если кто-то может показать вам, где вы ошиблись, таким образом… вы лучше поймете выражение. Результат запроса «правильного кода» на SO не определен.   -  person Tim Post♦    schedule 26.06.2010
comment
Я в замешательстве, что тебе нужно. Можете ли вы привести пример того, что вы делаете и что не работает? Посмотрите в руководстве по PHP несколько хороших примеров работы preg: php. net/manual/en/function.preg-replace.php   -  person labratmatt    schedule 26.06.2010
comment
$str = preg_replace(#('pm_(.+?)', '(.*?)');#si, \1, $str);   -  person Joseph    schedule 27.06.2010


Ответы (1)


Обновление:

Вы почти закончили, вам просто нужно сделать замену пустой строкой и правильно экранировать круглые скобки, иначе они будут рассматриваться как группа захвата (которая вам, кстати, не нужна):

$str = preg_replace("#\('pm_.+?', '.*?'\);#si", "", $str);

Возможно, вам также не нужны модификаторы s и i, но это на ваше усмотрение.


Старый ответ:

Вероятно, достаточно str_replace():

$str = "Some string that contains pm_IDHERE and NameHere";
$str = str_replace(array('pm_IDHERE', 'NameHere'), '', $str);

Если это не то, что вы имеете в виду, и pm_IDHERE на самом деле что-то вроде pm_1564, тогда да, вам, вероятно, нужны регулярные выражения для этого. Но если NameHere не имеет фактического шаблона или структуры, вы не можете заменить его регулярным выражением.
И вам определенно нужно лучше объяснить, какая строка у вас есть и какая строка у вас хочу заменить.

person Felix Kling    schedule 26.06.2010