|
1 / 1 / 1
Регистрация: 18.09.2017
Сообщений: 153
|
||||||||||||||||||||||||||
Разбиение строки по символу с "отрицанием"12.12.2017, 20:47. Показов 1620. Ответов 9
Метки нет (Все метки)
Пишу регулярку для разбиения строки по символу "запятая", но ту которая не помещена в апострофы с любым количеством пробелов. Т.е разбиение по запятой, а та запятая что в апострофах, не рассматривалась бы как символ разбиения, а как собственно символ и помещалась бы в массив
написал
получаю массив
Array( [0] = f [1] = g [2] = h [3] = ' [4] = ' [5] = j [6] = k ); Что нужно добавить в выражение? Как-то тяжело мне дается регулярка)
0
|
||||||||||||||||||||||||||
| 12.12.2017, 20:47 | |
|
Ответы с готовыми решениями:
9
Разбиение строки по заданному символу Разбиение читаемого из файла текста на строки по заданному символу Разбиение строки на слова - вынести разбиение в отдельную функцию |
|
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
|
|||||||||||
| 13.12.2017, 00:54 | |||||||||||
Сообщение было отмечено SergTN как решение
Решение
Исходные данные в формате CSV? Если да, то есть штатные средства под этот формат http://php.net/manual/ru/function.str-getcsv
1
|
|||||||||||
|
1 / 1 / 1
Регистрация: 18.09.2017
Сообщений: 153
|
|||||||
| 13.12.2017, 20:35 [ТС] | |||||||
|
По отдельным классам и символам выражения вроде понимаю, а как это все вместе работает не доходит) А правильно-ли модификатор u (для UTF-8) так добавить:
0
|
|||||||
|
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
|
|
| 13.12.2017, 20:53 | |
|
Да, для работы с UTF-8 стоит добавить модификатор u.
Шаблон захватывает всё до ближайшей запятой, а последовательность \K используется для сброса начала совпадения http://php.net/manual/ru/regex... escape.php
0
|
|
|
1 / 1 / 1
Регистрация: 18.09.2017
Сообщений: 153
|
|
| 13.12.2017, 22:06 [ТС] | |
|
Пробую теперь выбрать все что внутри этих крайних апострофов
/\b'(.+)'\b/ -работат только на внутренних апострофах, а не на внешних. Пробовал на http://easyregexp.ru/constructor Ничего не понимаю
0
|
|
|
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
|
||
| 13.12.2017, 22:55 | ||
\b - граница слова. Ей соответствует позиция между двумя символами текста, когда один из них является символом слова, а другой – нет.К символам слова относят состав метасимвола \w т.е. буквы, цифры и подчёркивание. Кавычка не является символом слова. Фрагмент \b' может совпасть только если перед кавычкой окажется буква, цифра или подчёркивание.Аналогично '\b для совпадения после кавычки нужна буква, цифра или подчёркивание..+ по умолчанию квантификаторы жадные и эта конструкция захватит максимум текста аж до самой последней кавычки.
1
|
||
|
1 / 1 / 1
Регистрация: 18.09.2017
Сообщений: 153
|
||
| 14.12.2017, 00:19 [ТС] | ||
|
наверное здесь проще вырезать обычными строковыми функциями обойтись -т.к. по идее для регулярки это несложная замена?
Добавлено через 4 минуты
0
|
||
|
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
|
|||||||||
| 14.12.2017, 04:06 | |||||||||
Сообщение было отмечено SergTN как решение
РешениеИ с позицией после последнего символа текста, если последний символ является символом слова.
1
|
|||||||||
|
1 / 1 / 1
Регистрация: 18.09.2017
Сообщений: 153
|
||
| 14.12.2017, 20:44 [ТС] | ||
|
Огромное спасибо!
Правда, еще более стал паттерн непонятнее) Можно поподробнее прокоментировать этот кусочек:
0
|
||
|
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
|
|
| 16.12.2017, 18:04 | |
|
Там или захват пробельных символов вокруг запятой или конец строки.
0
|
|
| 16.12.2017, 18:04 | |
|
Помогаю со студенческими работами здесь
10
Поиск целочисленных - Негативный просмотр назад (с отрицанием) и Негативный просмотр вперёд (с отрицанием)
Закодировать сообщение в виде строки с помощью операции «исключающее или» применяемой к каждому символу строки Обращение к символу строки Разделение строки по символу в массив Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|