2013-06-24 2 views
0

Ive получил дамп sql и хочет прокручивать строки, а затем изменять, удалять и вставлять определенные поля в каждой строке. Теперь мне нужно заменить все вхождения sql ',', который начинает и заканчивает каждое значение поля.php sql, номер запятой регулярного выражения

Мне нужна помощь только для моей последней проблемы. Мне нужно заменить все запятые, у которых есть цифра до и после запятой с моим сплиттером #***#.

Я нашел это регулярное выражение, /(^\d,\d)*$/, но некоторые из них не выполняют эту работу! У меня есть поля с текстом, которые включают в себя запятой поэтому Я не хочу заменить те ofcause

$sqlrows = str_replace(",",'#***#',preg_match('/(^\d,\d)*$/', $sqlrows)); 
// defines sql dump regex [0-9],[0-9] 

ответ

0

Вы должны использовать preg_replace() вместо str_replace() что-то вроде этого:

$sqlrows = preg_replace('/(^\d,\d)*$/', "#***#", $sqlrows); 
+0

Это сделало трюк! благодаря вам – Jakob

0

«Мне нужно замените все запятые, у которых есть номер цифры до и после запятая с моим сплиттером # * #. "

Попробуйте этот подход:

<?php 
$str = '1,2 
3,4 
'; 
$str = preg_replace('/(\d),(\d)/', '$1#***#$2', $str); 

print $str; 

печатает:

1#***#2 
3#***#4 

Я найти все запятые, окруженные цифрами, и заменить их сепаратором, сохраняя цифры нетронутыми с помощи обратные_связи.