2013-08-02 5 views
1
function regexp($text){ 
    $text = preg_replace('#!test=#', '', $text); 
    $text = preg_replace('#@test=#', '', $text); 
    return $text; 
} 

Как слить это регулярное выражение? Они отличаются только! а также @. В моем примере есть ошибка, и это не работает. Я хотел бы просто:Объединить два регулярных выражения

$a = 'asdf!test=wer'; 
$b = '[email protected]=dsf'; 

изменение:

$a = 'asdfwer'; 
$b = '232dsf'; 

с регулярным выражением.

+2

'preg_replace ('# [@] тест = #', '', $ текст)'? – DCoder

ответ

4

Что-то вроде этого, должны соответствовать как: #(!|@)test=#. Если вы будете иметь больше знаков (кроме ! и @, заменяя его чем-то вроде этого: #[[email protected]]test=# (как это было предложено @DCoder) даст более чистое регулярное выражение

По существу труба (|) на языке регулярных выражений обозначает. OR. Так что по сути, я говорю соответствовать строке test= если он предваряется с ! или @ знак.

+0

Хороший ответ, чем я ... вы этого заслуживаете – Gautam3164

+0

@ Gautam3164: Спасибо. – npinti

0

Попробуйте preg_replace с массивом регулярного выражения с массивом Заменяет как

$text = preg_replace(array('#!test=#' , '#@test=#'),array('' , ''), $text);