Помогите с регулярным выражением

snark

Новичок
Помогите с регулярным выражением

Есть строка, в которой необходимро заменить слово sud_* (где * любое продолжение) на sud_*_$id (где * это то самое продолжение, а $id это префикс)...

Спасибо за помощь.

P.S. Я бы сам поискал, но уж больно быстро нужо это сделать.
P.S.P.S. Обещаю выучить регулярки.... :)
 

snark

Новичок
sage

Запрос: SHOW TABLES FROM sud_work
Результат: SHOW TABLES FROM sud_w_ork

:((
 

WMix

герр M:)ller
Партнер клуба
может так preg_replace('{sud_(.+\s)}i', 'sud_\1_' . $id." ", $str);
но я сам не силён в этом
 

sage

Новичок
snark
исходя из твоего примера, можно сделать так:
PHP:
'{sud_(.+?)$}i'
 

snark

Новичок
нужно поставить условие что после строки 'sud_struct' нет знака '_'... Вот только как?

Тут вот еще одна проблемма возникла, есть две строки которые нужо заменить: sud_struct и sud_struct_box на sud_struct_ID, sud_struct_box_ID, какое нужно рег. выражение, чтобы при замене небыли перепутаны эти две строки, я пытался, но у меня менял sud_struct правильно, а вот sud_struct_box менял на sud_struct_ID_box :(((

ПОМОГИТЕ, пожалуйста!
 

SelenIT

IT-лунатик :)
Как вариант:
PHP:
'~\bsud_struct(?=_box)?\b~'
Но по-моему можно обойтись и str_replace в два прохода.
 
Сверху