|
|
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всем! Простая задача. Есть строка с разделителями. Необходимо написать регулярное выражение плана REGEXP_SUBSTR, которое извлекало бы нужный элемент. Пример строки: 'A1;A2;;A4' . Третий элемент, в данном случае, отсутствует, т.е. NULL. Спасибо всем кто откликнется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 15:31 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
MaXieДоброго времени суток всем! Простая задача. Есть строка с разделителями. Необходимо написать регулярное выражение плана REGEXP_SUBSTR, которое извлекало бы нужный элемент. Пример строки: 'A1;A2;;A4' . Третий элемент, в данном случае, отсутствует, т.е. NULL. Спасибо всем кто откликнется. Студентам, желающим помощи http://www.bugtraq.ru/forum/faq/general/smart-questions.html] Как правильно задавать вопросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 15:33 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
MaXie, Вроде'ж не первый год замужем на форуме, а задавать вопросы так и не научился Посмотри тему 21688294 , там задача аналогична Вашей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 15:37 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
авторПосмотри тему 21688294, там задача аналогична Вашей Вы под "аналогией" подразумеваете использование регулярного выражения REGEXP_SUBSTR? В приведенной Вами ссылке, задача схожая, но другая. Если я правильно ее понял - извлечь нужный элемент строки, при условии что все элементы имеют длину хотя бы в один символ. В моем случае речь идет о строке с наличием "пустых" элементов. Код: sql 1. - не подойдет, т.к. в приведенном мной примере, четвертый элемент окажется третьим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 16:01 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
MaXieавторПосмотри тему 21688294, там задача аналогична Вашей Вы под "аналогией" подразумеваете использование регулярного выражения REGEXP_SUBSTR? В приведенной Вами ссылке, задача схожая, но другая. Если я правильно ее понял - извлечь нужный элемент строки, при условии что все элементы имеют длину хотя бы в один символ. В моем случае речь идет о строке с наличием "пустых" элементов. Код: sql 1. - не подойдет, т.к. в приведенном мной примере, четвертый элемент окажется третьим. Не верю... 21691383 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 16:03 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
авторНе верю... Не верите, что '+' в регулярных выражениях означает "один и более" символов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 16:07 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
MaXieавторНе верю... Не верите, что '+' в регулярных выражениях означает "один и более" символов? Не верю голословным утверждениям, и не вижу что Вы что-то сделали не говоря о банальных instr/substr для которых данная задачка решается на раз/два или о чтении документации Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 16:30 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
> Vadim Lejnin Вопрос заключается в возможности решить эту задачу ограничившись только одним регулярным выражением. Т.е. без TRIM'ов, REPLACE'ов и прочей "оберточной мишуры" - только инструкции регулярных выражений(одного выражения). Что задача решается на раз/два при помощи банальных substr и instr, понимание этого было изначально. Примеры ( пробую найти 3-ий элемент ): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Во втором случае используется '*' - "ни одного или несколько символов", но он не дает ожидаемого результата. Возможно ли решить эту задачу используя только одно регулярное выражение ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 17:20 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
MaXie, наверное можна и проще, но маем шо маем Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 17:45 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
> Stax Ответ на мой вопрос(во всяком случае направление, в котором можно "копать")! Спасибо! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 18:24 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Staxнаверное можна и проще, но маем шо маем Не то маем. Магия данных. Попробуй когда первый пустой: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 18:40 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
SY, матчить нужно со скобкой, а не то что до нее: Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 19:17 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Так вроде работает (без ограничения на количество подгрупп ) Код: plsql 1. 2. 3. 4. Regards Maxim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 19:26 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Maxim Demenko, Немного получше Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 19:28 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Андрей Панфиловматчить нужно со скобкой, а не то что до нее: Код: plsql 1. А я то тут причем? Это stax'y. А по мне "Необходимо написать регулярное выражение плана REGEXP_SUBSTR, которое извлекало бы нужный элемент" либо от препода либо неправильная постановка. Правильная была бы извлечь что а не извлечь как. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 19:37 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
SYStaxнаверное можна и проще, но маем шо маем Не то маем. Магия данных. Попробуй когда первый пустой: SY. согласен, не учел Ваш вариант? .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 09:36 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Всем огромное спасибо за предложенные варианты решения! авторА по мне "Необходимо написать регулярное выражение плана REGEXP_SUBSTR, которое извлекало бы нужный элемент" либо от препода либо неправильная постановка. Правильная была бы извлечь что а не извлечь как. Задача. Считать данные из файла(*.csv) в таблицу состоящую из 100 столбцов. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Задача "классическая". Первое что приходит в голову использовать единое регулярное выражение для извлечения каждого из 100( может быть и меньше ) значений в строке. Такой подход, вроде, не противоречит логике. Оборачивать это в различные substr и instr, как это сперва предлагалось - про компактность и читаемость кода сразу можно забыть. Написать отдельную функцию - как вариант, но зачем. Какие еще могут быть решения? P.S. регулярное выражение в приведенном примере не корректно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 13:22 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
MaXieОборачивать это в различные substr и instr, как это сперва предлагалось - про компактность и читаемость кода сразу можно забыть. Написать отдельную функцию - как вариант, но зачем.Чтобы преобразовать строку в массив, например. И именно не регулярками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 13:30 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
MaXie, Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:12 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
авторЧтобы преобразовать строку в массив, например. И именно не регулярками. Вы полагаете что так будет быстрее? авторNow they have two problems. What is the second problem? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 18:34 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Итого , используя идею высказанную Stax, решение изложенной задачи, если ограничиться только регулярным выражением, может быть следующим: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Возможно, кому нибудь будет полезно при извлечении данных из csv-файлов. Всем спасибо! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 18:42 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
MaXieавторЧтобы преобразовать строку в массив, например. И именно не регулярками.Вы полагаете что так будет быстрее?Я не полагаю, я знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 18:44 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
MaXieпри извлечении данных из csv-файлов. Велосипедостроители, блин... CSV берется лодырем или external table. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 18:44 |
|
||
|
Простая задача на регулярное выражение
|
|||
|---|---|---|---|
|
#18+
MaXieСчитать данные из файла(*.csv) в таблицу состоящую из 100 столбцов. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 19:10 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39711210&tid=1883382]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
192ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 581ms |

| 0 / 0 |
