powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с регулярным выражением
10 сообщений из 10, страница 1 из 1
Помогите с регулярным выражением
    #39324123
Sergey_2583
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет,

Помогите описать регулярное выражение (ну не могу я их понять и всё, если кто знает хорошую статью для постижения сего чуда, я буду очень признателен).

Исходная строка выглядит так: [one two][one two five][one two five seven] , другими словами есть предложения, которые внутри квадратных скобок

Нужно фцнкцией reqexp_substr получить текст, который внутри одних из квадратных скобок, например если параметр = 2, то вернуть нужно one two five , если параметр = 1 то ответ one two, если параметр = 5, то ответ пустой.
...
Рейтинг: 0 / 0
Помогите с регулярным выражением
    #39324128
где-то так
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey_2583,

Код: plsql
1.
2.
with s1 as (select '[one two][one two five][one two five seven]' a from dual)
select regexp_substr (a, '\[[a-z ]*\]', 1, 3) from s1
...
Рейтинг: 0 / 0
Помогите с регулярным выражением
    #39324129
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_2583Всем привет,

Помогите описать регулярное выражение (ну не могу я их понять и всё, если кто знает хорошую статью для постижения сего чуда, я буду очень признателен).

Исходная строка выглядит так: [one two][one two five][one two five seven] , другими словами есть предложения, которые внутри квадратных скобок

Нужно фцнкцией reqexp_substr получить текст, который внутри одних из квадратных скобок, например если параметр = 2, то вернуть нужно one two five , если параметр = 1 то ответ one two, если параметр = 5, то ответ пустой.
Код: plaintext
1.
2.
3.
select regexp_substr(str, '\[[^]]*\]*', 1, 1) x1,
       regexp_substr(str, '\[[^]]*\]*', 1, 2) x2,
       regexp_substr(str, '\[[^]]*\]*', 1, 5) x3
  from (select '[one two][one two five][one two five seven]' str from dual)

Те кто не осилили регулярки - используют для данных задач instr + substr. Так же как и те для кого перфоманс критичен.

Хорошая статья
...
Рейтинг: 0 / 0
Помогите с регулярным выражением
    #39324130
фываячс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 
ищем скобку "[" , потом любое кол-во символов с "a" по "z" плюс " ", потом скобку "]"
select regexp_substr (a, '\[[a-z ]*\]', 1, 3) from s1
                                           ^ третье вхождение
                                        ^ ищем с первого символа
                                   ^^ ищем скобку (экранируем её, потому что просто скобка это команда)
                                  ^ всё что в скобках может повторяться сколько угодно раз
                                 ^ скобка закрывается
                             ^^^^ ищем символы с a по z плюс пробел
                            ^ скобка открывается
                          ^^ ищем скобку (экранируем её, потому что просто скобка это команда)
...
Рейтинг: 0 / 0
Помогите с регулярным выражением
    #39324131
Sergey_2583
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем огромное спасибо!
...
Рейтинг: 0 / 0
Помогите с регулярным выражением
    #39324132
аврпапв
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select regexp_substr(str, '\[[^]]*\]', 1, 1) x1,
                                          ^ первое вхождение
                                       ^ ищем с первого символа
                                  ^^ ищем скобку (экранируем её, потому что просто скобка это команда)
                                 ^ всё что в скобках может повторяться сколько угодно раз
                                ^ скобка закрывается
                              ^^ ищем любой символ кроме "]" ("^" - это отрицание)
                             ^ скобка открывается
                           ^^ ищем скобку (экранируем её, потому что просто скобка это команда)
...
Рейтинг: 0 / 0
Помогите с регулярным выражением
    #39324133
Sergey_2583
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя, вопрос ещё остался, все варианты выдают результат вместе с фигурными скобками, я понимаю что можно реплейсом это задачу решить, но всё же, можно чтоб одним регулярным выражением?
...
Рейтинг: 0 / 0
Помогите с регулярным выражением
    #39324135
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_2583Хотя, вопрос ещё остался, все варианты выдают результат вместе с фигурными скобками, я понимаю что можно реплейсом это задачу решить, но всё же, можно чтоб одним регулярным выражением?Ну ты совсем ленивый...

Код: plaintext
1.
2.
3.
4.
select regexp_substr(str, '\[([^]]*)\]*', 1, 1, null, 1) x1,
       regexp_substr(str, '\[([^]]*)\]*', 1, 2, null, 1) x2,
       regexp_substr(str, '\[([^]]*)\]*', 1, 5, null, 1) x3
  from (select '[one two][one two five][one two five seven]' str from dual)
...
Рейтинг: 0 / 0
Помогите с регулярным выражением
    #39324137
Sergey_2583
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop, спасибо огромное, я не ленивый, мне нужно просто несколько больше практики с регулярными выражениями, прочитать я их могу, а вот самому написать не получается (
...
Рейтинг: 0 / 0
Помогите с регулярным выражением
    #39324252
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_2583dbms_photoshop, спасибо огромное, я не ленивый, мне нужно просто несколько больше практики с регулярными выражениями, прочитать я их могу, а вот самому написать не получается (
а вы и читайте и пробуйте
ещё в поиске по форуму примеров вагон (ить не вы первый пробуете ;)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с регулярным выражением
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]