2015-10-14 5 views
0

Я хочу найти первый символ слова из предложения, и я хочу заменить его другим персонажем.Найдите первого символа слова и замените его

например '9322731525, 9820231525, 23856141, 9321154466'

находкой символ 2 в 1-ой позиции, и заменить его таким образом, выход будет выглядеть

например «9322731525, 9820231525, , 9321154466 '.

Я пробовал использовать substr, но это не сработало.

+0

например, пожалуйста, добавьте также ожидаемый результат. –

+0

, пожалуйста, уточните его подробнее .. –

+0

И что вы пробовали с 'substr'? Обычно он должен работать – nameless

ответ

1

Не лучшее регулярное выражение в мире, но я думаю, что он делает то, что вам нужно

$s='9322731525, 9820231525, 23856141, 9321154466'; 
$pttn='@\[email protected]'; 
echo preg_replace($pttn, ' 9', $s); 

outputs 
------- 
9322731525, 9820231525, 9856141, 9321154466 
+0

Код работает, спасибо – nikalldway

0

Вы могли бы попробовать что-то вроде

substr_replace("2","9",0,1); 

Посмотрите на here, чтобы увидеть, как работает эта функция.

+0

Это не сработало. У меня есть предложение, например «9322731525, 9820231525, 23856141, 9321154466», и мне нужно найти, какое слово имеет стартовое письмо 2. Если у него есть стартовая буква 2, я хочу либо заменить все слово, либо 1-й символ – nikalldway

+0

Хорошо, я получил это, чем вы можете просто разделить текст на запятую (используя 'split'-function), а затем проверить каждый элемент массива с помощью функции' substr_replace' и после того, как вы снова создали свое предложение. – nameless

+0

У меня есть много данных и там некоторые слова, которые не имеют запятой в начале или конце, или между запятой есть пробел. Там я должен искать по слову. – nikalldway

0

использовать это:

echo preg_replace('/2/', '9', $yourstring); 
+0

Он не хочет удалять каждые 2 строки, только первый. – nameless

+0

Да, это заменит все слово, состоящее из 2. Я хотел заменить только 1-й символ слова стартовой буквой 2 – nikalldway

3

вам нужно сделать так: '/ 2/' с пространством и,

заменить первую букву:

$string = '9322731525 , 9820231525, 23856141 , 9321154466'; 
$string = str_replace(',', ', ',$string); 
$string = preg_replace('/ 2/', ' 9', $string); 
output : 9322731525 , 9820231525, 93856141 , 9321154466 

заменить целое слово:

$string = '9322731525 , 9820231525, 23856141 , 9321154466'; 
$string = str_replace(',', ', ',$string); 
$string = preg_replace('/ (2[0-9]*)/', ' yourNewWord ', $string); 
output : 9322731525 , 9820231525, yourNewWord , 9321154466 
+0

Я пробовал, но он заменяет все другое слово, которое имеет номер 2. Я хотел заменить только 1-й символ слова стартовой буквой 2. – nikalldway

+0

@nikalldway см. Здесь работает: http: //www.phpliveregex.com/p/ddR заменяются только стартовые 2 – Kanti

+0

Вы должны увидеть 1-ю строку @nikalldway –

Смежные вопросы