powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (регулярные выражения) помогите убрать все запятые в строке у предложений, взятых в ""
6 сообщений из 6, страница 1 из 1
(регулярные выражения) помогите убрать все запятые в строке у предложений, взятых в ""
    #38199880
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дано: строка, состоящая из предложений. Некоторые предложения взяты в кавычки. Как убрать все запятые, только в тех предложениях, которые взяты в кавычки?

Например: Ищет в строке "subject все совпадения с шаблоном pattern и помещает результат в массив matches в порядке, определяемом комбинацией флагов flags". После "нахождения" первого соответствия последующие поиски будут осуществляться не с начала строки, а от конца последнего найденного вхождения.

Должно стать:

Ищет в строке "subject все совпадения с шаблоном pattern и помещает результат в массив matches в порядке определяемом комбинацией флагов flags". После "нахождения" первого соответствия последующие поиски будут осуществляться не с начала строки, а от конца последнего найденного вхождения.
...
Рейтинг: 0 / 0
(регулярные выражения) помогите убрать все запятые в строке у предложений, взятых в ""
    #38199964
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
однобитный,

а что сложного?
чтото типа:
Код: php
1.
2.
3.
4.
5.
6.
7.
$str = 'Ищет в строке "subject все совпадения с шаблоном pattern и помещает результат в массив matches в порядке, 
определяемом комбинацией флагов flags". После "нахождения" первого соответствия последующие 
поиски будут осуществляться не с начала строки, а от конца последнего найденного вхождения.';
$str = preg_replace_callback('/"([^"]+)"/s', 'strip_zpt', $str);
function strip_zpt($m) {
 return str_replace(',','',$m);
}
...
Рейтинг: 0 / 0
(регулярные выражения) помогите убрать все запятые в строке у предложений, взятых в ""
    #38199966
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

bugfixreturn str_replace(',','',$m[0]);
...
Рейтинг: 0 / 0
(регулярные выражения) помогите убрать все запятые в строке у предложений, взятых в ""
    #38200116
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, чета забыл про функцию такую...
я тут вон нашел что, тока пока оно не работало у меня... но мысль примерно такова была

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
Листинг 4. Пример использования оператора "посмотри вперед" ("предвидение")
$tab_data = preg_replace( '/
    ,                               # look for a comma
    (?=                             # then look ahead for
        (?:[^"]*$)                  # a string with no quotes and eol
        |                           #  -or-
        (?:[^"]*"[^"]*"[^"]*)*$     # a string with balanced quotes
    )                               # 
    /x', "\t", $csv_data );


Оператор preg_replace() преобразует строку данных, разделенных запятыми, в строку данных, разделенных знаком табуляции. Предусмотрительным образом, он не заменяет запятые в строке, заключенной в кавычки.

Это регулярное выражение при каждом обнаружении запятой (на это указывает запятая в самом начале регулярного выражения) проверяет утверждение: "Впереди не было кавычек или было четное количество кавычек". Если утверждение верно, то запятую можно заменить знаком табуляции (the \t).

Если Вам не нравятся операторы «посмотри вперед» и «посмотри назад» или вы работаете с таким языком, в котором их нет, можно добавить запятые в число и с помощью обычного регулярного выражения. Однако для реализации такого решения потребуется много итераций.

взял от сюда
...
Рейтинг: 0 / 0
(регулярные выражения) помогите убрать все запятые в строке у предложений, взятых в ""
    #38200543
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати не совсем корректно получается... вот пример:

было

5405,"ЛЭ002481","20","K 49,1*31,8*18,8 ZJ 42925TC","Ферритовый кольцевой сердечник R49,1*31,8*18,8 с защитным диэлектрическим покрытием из материала J производства фирмы Magnetics","ZJ44925TC","",0,252,"796",0,3,"Magnetics"," http://ferrite.ru/uploads/pdf/products/magnetics/ferrite/ring/ZJ44925TC.pdf","",205,1,145,5,121,252,0,0

стало:

5405,"ЛЭ002481","20","K 491*318*188 ZJ 42925TC","Ферритовый кольцевой сердечник R491*318*188 с защитным диэлектрическим покрытием из материала J производства фирмы Magnetics","ZJ44925TC",""0252"796"03"Magnetics"" http://ferrite.ru/uploads/pdf/products/magnetics/ferrite/ring/ZJ44925TC.pdf""",205,1,145,5,121,252,0,0

хотелось бы:

5405,"ЛЭ002481","20","K 49,1*31,8*18,8 ZJ 42925TC","Ферритовый кольцевой сердечник R491*318*188 с защитным диэлектрическим покрытием из материала J производства фирмы Magnetics","ZJ44925TC","",0,252,"796",0,3,"Magnetics"," http://ferrite.ru/uploads/pdf/products/magnetics/ferrite/ring/ZJ44925TC.pdf","",205,1,145,5,121,252,0,0
потом планировал из этого делать explode с разделением по запятой...

видимо не совсем по верному пути пошел... вообщем, есть текстовый формат с параметрами через запятую. если парам в кавычках - строка, без кавычек - число
мне надо сделать из него текстовый с разделителем табуляция...
...
Рейтинг: 0 / 0
(регулярные выражения) помогите убрать все запятые в строке у предложений, взятых в ""
    #38200610
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (регулярные выражения) помогите убрать все запятые в строке у предложений, взятых в ""
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]