|
Разбор строки
|
|||
---|---|---|---|
#18+
Добрый день, уважаемые форумчане! Помогите, пожалуйста, разобраться. Есть строка, в которой данные разделены знаком "|". Т.е. строка выглядит примерно так: текст1|текст2|число1|число2... и так далее (после каждого разделителя указывает определенный атрибут документа). Мне нужно всегда брать лишь некоторые части из строки, заключенные внутри разделителя |. Т.е. завожу несколько переменных, в первой, например, будет храниться часть строки между 3 и 4 разделителями, в следующей переменной между 7 и 8 разделителями. Я понимаю, что удобнее всего использовать regexp_substr, но еще не успел разобраться с его синтаксисом. Подскажите, пожалуйста, или ткните, куда смотреть. Всем заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 14:46 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
Решение задачи не требует regexp ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 14:50 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
andrey_anonymous, каким, в таком случае, по Вашему мнению, будет оптимальный способ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 14:52 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
lehakarlov оптимальный способ? Оптимальный, как всегда, зависит от конкретного контекста. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 14:59 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
andrey_anonymous, контекст следующий: есть строка, в которой между знаками разделителя | находятся атрибуты одного объекта. Количество разделителей в строки всегда фиксированное. Также неизменный порядок данных в этой строке, которые мне нужно извлечь. Если уж совсем близко к моей реальной задаче, то нужно вычленить дату между 1 и 2 разделителями, потом числа между 7 и 8, и 10 и 11. Я думал завести три переменные и в них поместить результаты моих regexp-ов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 15:05 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
lehakarlov Если уж совсем близко к моей реальной задаче, то нужно вычленить дату между 1 и 2 разделителями, потом числа между 7 и 8, и 10 и 11. Вопрос в использовании. К примеру, если оно надо в select - предложил бы табличную функцию, внутри которой за один проход по строке формировал бы все необходимые атрибуты. Если внутри pl/sql, то можно сделать аналогичную функцию, возвращающую record. Сам парсинг прост до безобразия - instr ищет очередное вхождение разделителя от текущей позиции, substr дает подстроку. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 15:13 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
lehakarlov Я понимаю, что удобнее всего использовать regexp_substr, но еще не успел разобраться с его синтаксисом. Подскажите, пожалуйста, или ткните, куда смотреть. Всем заранее спасибо. Особенности национальной рыбалкиСначала на червя, потом плавно переходим на блесну, а потом уж... другие способы ловли. Динамит, например. Электроудочка смотри на substr/instr ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 15:14 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
Сам разбор строки происходит в цикле. Думаю, substr/instr - как раз то, что мне нужно. Попробую. Всем спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 15:19 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
Пример с external table. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
REJECT LIMIT UNLIMITED; ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 15:52 |
|
Разбор строки
|
|||
---|---|---|---|
#18+
dmdmdm Пример с external table. зачем банально instr Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 16:17 |
|
|
start [/forum/topic.php?fid=52&msg=39949382&tid=1881324]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 282ms |
total: | 511ms |
0 / 0 |