0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
||||||
Атомарная группировка в PHP15.06.2016, 02:48. Показов 1813. Ответов 5
Метки регулярное выражение (Все метки)
Читаю сейчас всеми известную книгу - Дж.Фридл - "Регулярные выражения". Дошел до момента с атомарной группировкой, и у меня загвоздка. Регулярка обрабатывает котировки вида
23.34000012 23.345 34.4000025 456.0029';. И должна оставить 3 знака после точки. Имеет вид "~(\.\d\d(?>[1-9]?))\d+~" При попытке обработать число 23.345, По идее, как и описано в книге, в группировке должны остаться цифры .345. Но этого не происходит. Сначала совпадает точка \. , далее первая цифра 3 с \d, далее вторая цифра 4 захватывается \d, далее 5 подходит под выражения [1-9], но тогда не находится совпадения для \d+, т.к. должна быть хотя бы одна цифра, следовательно состояние атомарной группировки должно быть уничтожено и \d+ совпадет с цифрой 5. Но этого не происходит...Что не так? поддерживает ли вообще php атомарную группировку. Если да, то в чем отличие с Perl? Или может я че не догнал? У Фридла в книге на Perle типа все работает как задумано? Помогите пожалуйста разобраться... Код ниже
0
|
15.06.2016, 02:48 | |
Ответы с готовыми решениями:
5
Php группировка из двух таблиц Парсинг JSON + группировка массивов - PHP Сети Атомарная операция |
Hello Kitty
![]() |
|||||||||||||||||
15.06.2016, 09:56 | |||||||||||||||||
думаю так сработает
http://sandbox.onlinephpfuncti... 427e8c46a7
0
|
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
||||||
15.06.2016, 14:11 [ТС] | ||||||
j2FunOnly, Нет, я немного не дописал, там одним из условий округления идет тот факт, что третья цифра отличная от нуля. Но даже в предложенном Вами варианте, не будет совпадений к числу 23.345. Вот результат по Вашему коду:
Хотя по идее он должен сработать....В $matches[0] и $matches[1] должно попасть .345, и .34 соответственно....Но почему-то не попадет...
0
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|||
15.06.2016, 21:08 | |||
![]() РешениеДобавлено через 5 минут
1
|
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
|
16.06.2016, 02:25 [ТС] | |
pav1uxa, Не суть как это называется, во одних источниках, как http://www.regular-expressions.info/atomic.html, и книге Дж.Фридл, или как в источнике, который вы указали. Спасибо. Я изначально немного не так понял.
0
|
16.06.2016, 02:25 | |
Помогаю со студенческими работами здесь
6
Атомарная операция mySql-PHP-группировка-вывод в браузер Группировка Группировка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
|
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
|
Настройка гиперпараметров с помощью Grid Search и Random Search в Python
AI_Generated 15.05.2025
В машинном обучении существует фундаментальное разделение между параметрами и гиперпараметрами моделей. Если параметры – это те величины, которые алгоритм "изучает" непосредственно из данных (веса. . .
|
Сериализация и десериализация данных на Python
py-thonny 15.05.2025
Сериализация — это своего рода "замораживание" объектов. Вы берёте живой, динамический объект из памяти и превращаете его в статичную строку или поток байтов. А десериализация выполняет обратный. . .
|
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю, что помимо энергоэффективности - ещё и безопасность.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика - тотальный контроль над каждым совершённым тактом, а значит - безусловная безопасность, где безконтрольно не совершится ни одного. . .
|
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
|
Stack, Queue и Hashtable в C#
UnmanagedCoder 14.05.2025
Каждый опытный разработчик наверняка сталкивался с ситуацией, когда невинный на первый взгляд List<T> превращался в узкое горлышко всего приложения. Причина проста: универсальность – это прекрасно,. . .
|
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
|
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
|
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
|