2015-08-15 4 views
0

Как я могу заменить символ * только внутри () с символом -?preg заменить специальный символ внутри()


Например:

$x="AUDI A4 Avant (8D5* B5)* A4 (8D2* B5)* A6 Avant (4A* C4)* A6 Avant (4B5* C5)* A6 (4A* C4)*A6 (4B2* C5)* AUDI (FAW) A6L Stufenheck (4B5* C5)* VW PASSAT Variant (3B5)* PASSAT (3B2)"; 

Выход для $x вернется

$x="AUDI A4 Avant (8D5- B5)*A4 (8D2- B5)*A6 Avant (4A- C4)*A6 Avant (4B5- C5)*A6 (4A- C4)*A6 (4B2- C5)*AUDI (FAW) A6L Stufenheck (4B5- C5)*VW PASSAT Variant (3B5)*PASSAT (3B2)"; 

ответ

1

У попробовать с:

Найти: (\([^*]*)\*([^*)]*\))
Заменить: $1-$2

Объяснение:

(  : begining of group 1 
    \( : a parenthesis 
    [^*]* : 0 or more character that is not an asterisk 
)  : end of group 1 
\*  : an asterisk 
(  : begining of group 2 
    [^*)]*: 0 or more character that is not an asterisk or a parenthesis 
    \) : a parenthesis 
)  : end of group 2 
Смежные вопросы