112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
|
||||||||||||||||
1 | ||||||||||||||||
Использование регулярных выражений03.05.2014, 19:01. Показов 2281. Ответов 11
Метки нет (Все метки)
Перемещено из Поиск в массиве
как один из вариантов это поиск через регулярки. Добавлено через 3 минуты
еще можно через предикаты
0
|
03.05.2014, 19:01 | |
Ответы с готовыми решениями:
11
Использование регулярных выражений Использование регулярных выражений Использование регулярных выражений Использование регулярных выражений в GO |
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|
03.05.2014, 20:51 | 2 |
Ясное дело буду. Зачем мне php нотация в Objective-C коде... При этом еще и в виде функций, а не "хотя бы" категорий.
Или еще лучше: noname_club, знаете такой принцип бритвы Оккама?
0
|
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
|
|||||||||||||||||||||
04.05.2014, 12:43 [ТС] | 3 | ||||||||||||||||||||
стоит набрать pr_ и открывается список предикатов которые можно применить. Таким образом не нужно запоминать названия этих предикатов и как они пишутся. Достаточно набрать pr_ Добавлено через 23 минуты
---A--- Вcпомнить название и правописание предиката CONTAINS ---B--- Включить CAPSLOCK или держать Shift для правильного написания предиката ---C--- Составить предикат
составить условие
A+B+C+D = результат ~~~~~~~~~~~~~~~~~~~ 2) бритва Оккама с использованием %библитеки утилит общего назначения в которой есть функция string_predicate_match()%.h ---A--- Вспомнить что есть название фунции состоящее из string (строковая) + predicate(предикат) + match(соответствие) ---B--- Вспомнить что при наборе pr_ получаем список предикатов доступных для использования ---С--- Составить условие
A+B+C = результат
0
|
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|
04.05.2014, 19:27 | 4 |
Работал я с одним человеком, у которого на такие вещи были стандартные слова - "мне так нравится делать". Не любили его в команде, и удалили позже.
Так вот, если это вам нравится, но вы не думаете о тех людях, которые могут столкнуться с вашими творениями - это прискорбно. Пропускаете то, что 99% из тех, кто программирует на Objective-C, и слышать не слышали о такой странности, как использовать наименования и обвязку функциональной частью "как в php" методов из Foundation Framework. Еще пропускаете то, что придется запоминать совершенно ненужную прослойку в виде ваших "pr_ololo" В итоге мы будем иметь одинаковый функционал, написанный несколько раз. И один раз будет в странном синтаксисе, который по стилю будет совершенно отличен от остального кода. Имхо, вы как-то странно показали пример для выражения "не плодить сущности без необходимости"... А ваша обвязка в данном контексте - именно такая сущность.
0
|
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
|
|
04.05.2014, 20:16 [ТС] | 5 |
1) документация на "библиотеки", которая показывает сущность идеологии их использования. 2) желание их использовать Сам факт использования регулярных выражений это уже гарантия частичного знания JavaScript или PHP или Perl так как научиться использовать регулярки можно только в скриптовых языках. Научиться использовать регулярки только в Objc сложнее, так как язык громоздкий и психологически не дает той прозрачности кода которая присуща скриптовым языкам. Добавлено через 6 минут в пунктах A и B как раз идет обращение мозга к тому что нужно вспомнить 1) в пункте A тоже идет обращеник тому что нужно вспомнить вопрос в том насколько быстро будет выполнет A1 по сравнению с A2 и B2 а что говорить про пункты C1 и D1 они в 2-3 раза медленее и напряжнее чем C2
0
|
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
04.05.2014, 20:19 | 6 |
А мне нравится писать весь код в одну строчку..
Вы совершенно правы! Это же сколько экономии, не надо затем никаких обфускаторов и т.п., сжимающих код! Правда, C не особо-то это позволяет, поэтому я использую другие языки программирования. Но это же не беда?
0
|
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
|
|
04.05.2014, 20:25 [ТС] | 7 |
просмотрим на это с другой стороны
Допустим есть задача: Автоматизировать в среде разработки ввод предиката, да так чтобы она тебе подсказывала какой предикат можно применить, чтобы его самому не писать? Так бы ты zulkis ее решил? Добавлено через 2 минуты
0
|
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
04.05.2014, 20:31 | 8 |
Добавлено через 4 минуты не согласен. В большинстве ЯП используется один и тот же синтаксис - PCRE (Perl-совместимые регулярные выражения), а различия его синтаксиса в различных ЯП заключаются лишь в реализованных возможностях (да, встречаются еще и POSIX-совместимые регулярки, но это уже почти редкость). Например, в упомянутом выше JavaScript отсутствуют заглядывания назад, возможность проверки на начало/конец строки и т.п., а в PHP, Ruby и т.п. это реализовано. Ну и, возможно, небольшие отличия по синтаксису (хотя сама суть одна и та же - лишь незначительные различия в реализации). На основании вышеизложенного можно смело сказать, что знание/незнание регулярных выражений не зависит от знания/незнания каких-либо скриптовых ЯП. Да и, к примеру, если почитаете книгу Фридла, то увидите, что он вообще начинает объяснять регулярки на примере "своего" языка..
2
|
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
|
||||||
06.05.2014, 06:57 | 9 | |||||
Давно стараюсь игнорировать посты noname_club, но тут все-таки выскажу свое мнение.
У такого подхода плюсы я вижу такой: IDE подсказывает строчку. Все. Минусы: Главный минус: такая либа не нужна. Задача, которую вы пытаетесь решить, noname_club, такая мелкая и настолько частная, что использование чего-то стороннего здесь - это просто большой оверхед (опять же бритва Оккама). Средний разработчик за день сталкивается с десятками разных задач типа этой, и иметь для каждого подобного чиха специальную либу просто нерационально. К тому же разработчик должен как минимум знать, что есть готовое решение для его проблемы, либо поискать его codebase, затем он должен его подключить (не исключено, что оно с подобным именованием наплодит конфликтов имен) и понять как с ним работать. Поздравляю, задачу которая решается стандартными средствами за 1 минуту, вы растянули в несколько раз, при этом добавили зависимостей и сделали код менее понятным для непосвященных. По поводу php нотации скажу только, что аргумент "мне так нравится" может прокатить только для личных домашних проектов, но не для коммерческих и тем более командных. У меня в команде такой код даже ревью не прошел бы. Если вам уж так хочется это сделать, то написали бы как-то так, получили бы намного меньше лучей поноса в свой адрес:
0
|
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
|
|
07.05.2014, 09:27 [ТС] | 10 |
Переименуйте тему в "неправильное использование регулярных выражений и предикатов" ведь вы все так считаете!
подписка на тему анулирована. Добавлено через 7 минут
0
|
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
07.05.2014, 09:28 | 11 |
а зачем, если, как вы сами говорите
? И да, вопрос не в правильном/неправильном использовании, а в уместности их применения в конкретной ситуации.. Не по теме: а я так и вообще проездом, я на objective c и не писал ни разу)
0
|
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
|
|
07.05.2014, 11:00 | 12 |
Вы в мое сообщение хорошо читали?
Во-первых требования не "мои", по большей части у нас в команде руководствуются Apple Coding Guidelines for Cocoa, кроме некоторых нюансов, где у нас прописаны свои. Требования эти существуют для повышения эффективности разработки и поддержки кода, а не по чьей-то прихоти. Во-вторых, я не писал, что мы не используем сторонних библиотек. Конечно используем, но только не для задач типа "сложить 2 и 2". В-третьих, раз уж отвечаете на адресованное вам сообщение, потрудитесь не игнорировать его большую часть. А это похоже на детскую обиду. Если предлагаете свои решения и выкладываете их в общий доступ, будьте готовы к аргументированной критике.
0
|
07.05.2014, 11:00 | |
07.05.2014, 11:00 | |
Помогаю со студенческими работами здесь
12
Строки и использование регулярных выражений Использование регулярных выражений в case Использование регулярных выражений, хранимых в массиве Возможно ли такое использование регулярных выражений ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |