preg_replace('!([^\,]+)$!s', ', '.$index.' \1', $u

serjoo
На сайте с 12.09.2011
Offline
389
500

Привет.

Есть такая конструкция:

$index,

preg_replace('!([^\,]+)$!s', ', '.$index.' \1', $u),

насколько я понял, в разных местах оставляет/берет только цифры без пробелов.

А необходимо оставлять/брать цифры с буквами (латинскими) и пробелами.

Или не там копаю?

Мультур..
[Удален]
#1

Похоже что-то не то с регуляркой, не могу представить хоть одну строку, которая будет удовлетворять ее условию.

A
На сайте с 04.11.2007
Offline
89
#2

В строке $u после последней запятой вставляется текст $index. Цифры тут не фигурируют.

serjoo
На сайте с 12.09.2011
Offline
389
#3
imagine:
Похоже что-то не то с регуляркой, не могу представить хоть одну строку, которая будет удовлетворять ее условию.

Хорошо хоть сказали, теперь буду знать.

asteroid:
В строке $u после последней запятой вставляется текст $index. Цифры тут не фигурируют.

не хочет, или я не правильно сделал.

Можно пример?

Руслан С
На сайте с 12.12.2015
Offline
9
#4
serjoo:
не хочет, или я не правильно сделал.
Можно пример?

Вы неправильно поняли. Данное регулярное выражение не ищет цифры. В выдачу попадают все символы, кроме запятой. Другими словами, все разделенное запятой.

Для реализации данной функции, можно использовать стандартную и более быструю PHP-функцию explode().

Если у вас остались вопросы, дайте знать.

serjoo
На сайте с 12.09.2011
Offline
389
#5
Руслан С:
В выдачу попадают все символы, кроме запятой.

в том то и дело что не попадают.

В первом случае у меня чисто цифры, и строчка из стартпоста работает.

Сейчас у меня цифры с пробелами и буквами (лат.), не пашет.

Руслан С
На сайте с 12.12.2015
Offline
9
#6

Предоставьте вывод дампа функцией var_dump($index, $u) до и после preg_replace() и вызван в ситуации, в которой скрипт работает некорректно.

alexvaleev
На сайте с 04.02.2010
Offline
55
#7

В строке $u все, что после последней запятой, заменяется на

', '.$index.' \1'

([^\,]+)$ - тут [^\,] значит любой символ кроме запятой, а $ - взять кусок в конце строки.

Пример https://regex101.com/r/eY4lN2/1

Блог (http://alexvaleev.ru) Всем роуп! (https://rujump.ru/)
A
На сайте с 04.11.2007
Offline
89
#8
serjoo:
в том то и дело что не попадают.

Очень странно.

Это бред конечно, но попробуйте добавить модификатор u.

preg_replace('!([^\,]+)$!su', ', '.$index.' \1', $u)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий